#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "Minigames.h" #include #include "DLLDateien.h" #include #include #include #include #include #include struct HINSTANCE__; using namespace Framework; void FClose( void *p, void *zF ) { StopNachrichtenSchleife( ( (WFenster*)zF )->getFensterHandle() ); } Bild *b1; Bild *b2; Bild *b3; class Alpha : public Zeichnung { public: void render( Bild &zRObj ) { zRObj.setDrawOptions( getPosition(), Punkt( 1000, 1000 ) ); Bild tmp; tmp.neuBild( 100, 100, 0 ); tmp.drawBild( 0, 0, 100, 100, *b1 ); tmp.alphaBildAssoz( 0, 0, 100, 100, *b2 ); zRObj.drawBild( 0, 0, 100, 100, tmp ); zRObj.drawBild( 0, 150, 100, 100, *b1 ); zRObj.drawBild( 0, 250, 100, 100, *b2 ); zRObj.releaseDrawOptions(); } }; class Alpha2 : public Zeichnung { public: void render( Bild &zRObj ) { zRObj.setDrawOptions( getPosition(), Punkt( 1000, 1000 ) ); Bild tmp; tmp.neuBild( 100, 100, 0 ); tmp.drawBild( 0, 0, 100, 100, *b2 ); tmp.alphaBildAssoz( 0, 0, 100, 100, *b1 ); zRObj.drawBild( 0, 0, 100, 100, tmp ); zRObj.drawBild( 0, 150, 100, 100, *b2 ); zRObj.drawBild( 0, 250, 100, 100, *b1 ); zRObj.releaseDrawOptions(); } }; void doStuff() { Network::Start( 1 ); WFenster *f = new WFenster(); WNDCLASS fc = F_Normal( 0 ); fc.lpszClassName = "Test"; f->erstellen( WS_OVERLAPPEDWINDOW, fc ); f->setSize( 800, 500 ); f->setPosition( Punkt( 100, 100 ) ); f->setVSchließAktion( FClose ); f->setMausAktion( _ret1ME ); f->setTastaturAktion( _ret1TE ); f->setAnzeigeModus( 1 ); Punkt bildschirmGröße = BildschirmGröße(); bildschirmGröße.x++; bildschirmGröße.y++; f->setSize( bildschirmGröße ); f->setPosition( Punkt( 0, 20 ) ); Bildschirm *b = new Bildschirm3D( f->getThis() ); b->setBackBufferSize( f->getKörperGröße() ); f->setBildschirm( b->getThis() ); b->setFillFarbe( 0xFF000000 ); b->setTestRend( 0 ); LTDSDatei sd; sd.setPfad( new Text( "normal.ltds" ) ); sd.leseDaten(); Schrift *schrift = sd.ladeSchrift(); DLLDateien dlls; Bild tmp; tmp.neuBild( 500, 1000, 0x30FFFFFF ); Bild tmp2; tmp2.neuBild( 1900, 1000, 0x80355768 ); ZeitMesser m; //while( true ) //{ // m.messungStart(); // for( int i = 0; i < 2000; i++ ) // { // tmp2.alphaRegion( 0, 0, 500, 1000, 0x40468349 ); // } // m.messungEnde(); // std::cout << "time: " << m.getSekunden() << "\n"; //} API *api = new API( f ); MiniGames *mGames = new MiniGames( schrift, dlls.getThis(), b, api ); b->addMember( mGames->getThis() ); //b1 = new Bild(); //b1->neuBild( 100, 100, 0x7F0545FF ); //b2 = new Bild(); //b2->neuBild( 100, 100, 0x7F79FF45 ); //b3 = new Bild(); //b3->neuBild( 100, 100, 0x77FF2020 ); //Alpha *a = new Alpha(); //a->setPosition( 0, 0 ); //a->setSize( 100, 100 ); //b->addMember( a ); //Alpha2 *a2 = new Alpha2(); //a2->setPosition( 100, 0 ); //a2->setSize( 100, 100 ); //b->addMember( a2 ); b->update(); RenderTh *r = new RenderTh(); r->setBildschirm( b->getThis() ); r->setMaxFps( 60 ); r->setTickFunktion( []( void*p, void*o, double t ) { if( getTastenStand( T_F1 ) ) std::cout << t << "\n"; } ); r->beginn(); StartNachrichtenSchleife(); r->beenden(); r->release(); mGames->release(); f->setBildschirm( 0 ); b->release(); f->release(); schrift->release(); delete api; Network::Exit(); } int main() { #ifdef _DEBUG _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); #endif initFramework(); doStuff(); releaseFramework(); return 0; }