Main.cpp 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. #include <Bildschirm.h>
  2. #include <RenderThread.h>
  3. #include <KSGScript.h>
  4. #include <MausEreignis.h>
  5. #include <TastaturEreignis.h>
  6. #include <Schrift.h>
  7. #include <DateiSystem.h>
  8. #include <time.h>
  9. #include <Textfeld.h>
  10. #include <Datei.h>
  11. #include <M2Datei.h>
  12. #include <Model2D.h>
  13. #include <Bild.h>
  14. #include <Textur2D.h>
  15. #include <MiniGameV.h>
  16. #include "Minigames.h"
  17. #include <DateiSystem.h>
  18. #include "DLLDateien.h"
  19. #include <Network.h>
  20. #include <Globals.h>
  21. #include <iostream>
  22. #include <string>
  23. #include <XML.h>
  24. #include <Zeit.h>
  25. #include <WebSocket.h>
  26. struct HINSTANCE__;
  27. using namespace Framework;
  28. void FClose( void *p, void *zF )
  29. {
  30. StopNachrichtenSchleife( ( (WFenster*)zF )->getFensterHandle() );
  31. }
  32. Bild *b1;
  33. Bild *b2;
  34. Bild *b3;
  35. class Alpha : public Zeichnung
  36. {
  37. public:
  38. void render( Bild &zRObj )
  39. {
  40. zRObj.setDrawOptions( getPosition(), Punkt( 1000, 1000 ) );
  41. Bild tmp;
  42. tmp.neuBild( 100, 100, 0 );
  43. tmp.drawBild( 0, 0, 100, 100, *b1 );
  44. tmp.alphaBildAssoz( 0, 0, 100, 100, *b2 );
  45. zRObj.drawBild( 0, 0, 100, 100, tmp );
  46. zRObj.drawBild( 0, 150, 100, 100, *b1 );
  47. zRObj.drawBild( 0, 250, 100, 100, *b2 );
  48. zRObj.releaseDrawOptions();
  49. }
  50. };
  51. class Alpha2 : public Zeichnung
  52. {
  53. public:
  54. void render( Bild &zRObj )
  55. {
  56. zRObj.setDrawOptions( getPosition(), Punkt( 1000, 1000 ) );
  57. Bild tmp;
  58. tmp.neuBild( 100, 100, 0 );
  59. tmp.drawBild( 0, 0, 100, 100, *b2 );
  60. tmp.alphaBildAssoz( 0, 0, 100, 100, *b1 );
  61. zRObj.drawBild( 0, 0, 100, 100, tmp );
  62. zRObj.drawBild( 0, 150, 100, 100, *b2 );
  63. zRObj.drawBild( 0, 250, 100, 100, *b1 );
  64. zRObj.releaseDrawOptions();
  65. }
  66. };
  67. void doStuff()
  68. {
  69. /*Network::WebSocket::WebSocketClient client( "/test", "koljastrohm-games.com", 8083 );
  70. client.connect();
  71. Text test = "{\"data\":\"test\"}";
  72. client.send( test.getLength(), test, Network::WebSocket::TEXT );
  73. client.send( test.getLength(), test, Network::WebSocket::TEXT );
  74. client.warteAufThread( 2000 );*/
  75. WFenster *f = new WFenster();
  76. WNDCLASS fc = F_Normal( 0 );
  77. fc.lpszClassName = "Test";
  78. f->erstellen( WS_OVERLAPPEDWINDOW, fc );
  79. f->setSize( 800, 500 );
  80. f->setPosition( Punkt( 100, 100 ) );
  81. f->setVSchließAktion( FClose );
  82. f->setMausAktion( _ret1ME );
  83. f->setTastaturAktion( _ret1TE );
  84. f->setAnzeigeModus( 1 );
  85. Punkt bildschirmGröße = BildschirmGröße();
  86. bildschirmGröße.x++;
  87. bildschirmGröße.y++;
  88. f->setSize( bildschirmGröße );
  89. f->setPosition( Punkt( 0, 20 ) );
  90. Bildschirm *b = new Bildschirm3D( f->getThis() );
  91. b->setBackBufferSize( f->getKörperGröße() );
  92. f->setBildschirm( b->getThis() );
  93. b->setFillFarbe( 0xFF000000 );
  94. b->setTestRend( 0 );
  95. LTDSDatei sd;
  96. sd.setPfad( new Text( "normal.ltds" ) );
  97. sd.leseDaten();
  98. Schrift *schrift = sd.ladeSchrift();
  99. DLLDateien dlls;
  100. Bild tmp;
  101. tmp.neuBild( 500, 1000, 0x30FFFFFF );
  102. Bild tmp2;
  103. tmp2.neuBild( 1900, 1000, 0x80355768 );
  104. ZeitMesser m;
  105. //while( true )
  106. //{
  107. // m.messungStart();
  108. // for( int i = 0; i < 2000; i++ )
  109. // {
  110. // tmp2.alphaRegion( 0, 0, 500, 1000, 0x40468349 );
  111. // }
  112. // m.messungEnde();
  113. // std::cout << "time: " << m.getSekunden() << "\n";
  114. //}
  115. API *api = new API( f );
  116. MiniGames *mGames = new MiniGames( schrift, dlls.getThis(), b, api );
  117. b->addMember( mGames->getThis() );
  118. //b1 = new Bild();
  119. //b1->neuBild( 100, 100, 0x7F0545FF );
  120. //b2 = new Bild();
  121. //b2->neuBild( 100, 100, 0x7F79FF45 );
  122. //b3 = new Bild();
  123. //b3->neuBild( 100, 100, 0x77FF2020 );
  124. //Alpha *a = new Alpha();
  125. //a->setPosition( 0, 0 );
  126. //a->setSize( 100, 100 );
  127. //b->addMember( a );
  128. //Alpha2 *a2 = new Alpha2();
  129. //a2->setPosition( 100, 0 );
  130. //a2->setSize( 100, 100 );
  131. //b->addMember( a2 );
  132. b->update();
  133. RenderTh *r = new RenderTh();
  134. r->setBildschirm( b->getThis() );
  135. r->setMaxFps( 60 );
  136. r->setTickFunktion( []( void*p, void*o, double t )
  137. {
  138. if( getTastenStand( T_F1 ) )
  139. std::cout << t << "\n";
  140. } );
  141. r->beginn();
  142. StartNachrichtenSchleife();
  143. r->beenden();
  144. r->release();
  145. mGames->release();
  146. f->setBildschirm( 0 );
  147. b->release();
  148. f->release();
  149. schrift->release();
  150. delete api;
  151. }
  152. int main()
  153. {
  154. #ifdef _DEBUG
  155. _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
  156. #endif
  157. initFramework();
  158. Network::Start( 1 );
  159. doStuff();
  160. Network::Exit();
  161. releaseFramework();
  162. return 0;
  163. }