bool App::OnInit() { if(TTF_Init() == -1) { printf("TTF_Init: %s\n", TTF_GetError()); return false; } if(SDL_Init(SDL_INIT_EVERYTHING) < 0) { return false; } SDL_WM_SetCaption("Kubus",NULL); if((surfDisplay = SDL_SetVideoMode(screenWidth, screenHeight, 32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_OPENGL )) == NULL) { return false; } glewInit(); Init3D(screenWidth, screenHeight); return true; }
//Main Entry int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { HWND windowHWND; windowHWND = IRoot.CreateRenderWindow(640, 480, L"Hahaha Render Window", hInstance); inputE.Initialize(hInstance, windowHWND); Init3D(windowHWND); IRoot.SetMainLoopFunction(MainLoop); IRoot.Mainloop(); Cleanup(); return 0; }
void SoftwareGraphicsDevice::ReSizeFullScreen(WindowObjects &O, AppInterface &App) { if(!O.GetWindowManager().GetFullScreen()) { ChangeDisplaySettings(NULL,0); //restore the display from full screen mode } GraphicsDeviceParameters Parameters; Init3D(O, Parameters); _RestoreDevices = true; }
void SimpleDeviceWindow::Play() { CreateNativeWindow(); CreateInterface(); CreateDevice(); Init3D(); m_timer.Reset(); while(!m_exit) { m_timer.Set(); MessageLoop(); Render(m_timer.m_elapsed); } Dispose(); }
static INLINE void trident_draw_quad( tridentContextPtr tmesa, const tridentVertex *v0, const tridentVertex *v1, const tridentVertex *v2, const tridentVertex *v3 ) { GLuint vertsize = tmesa->vertex_size; GLint coloridx = (vertsize > 4) ? 4 : 3; unsigned char *MMIO = tmesa->tridentScreen->mmio.map; int clr; float *ftmp = (float *)(&clr); if (tmesa->dirty) tridentUploadHwStateLocked( tmesa ); #if 0 DrawTriangle(tmesa); exit(0); #else #if 1 if (first) { Init3D(tmesa); #if 0 DrawTriangle(tmesa); #endif first = 0; } #endif LOCK_HARDWARE( tmesa ); MMIO_OUT32(MMIO, 0x002C00 , 0x00000010 ); MMIO_OUT32(MMIO, 0x002C04 , 0x029C00C0 ); /* Z buffer */ MMIO_OUT32(MMIO, 0x002C24 , 0x00100000 /*| (tmesa->tridentScreen->depthOffset)*/ ); MMIO_OUT32(MMIO, 0x002C28 , 0xE0000000 | (tmesa->tridentScreen->depthPitch * 4) ); /* front buffer */ MMIO_OUT32(MMIO, 0x002C50 , 0x00000000 | (tmesa->drawOffset) ); MMIO_OUT32(MMIO, 0x002C54 , 0x0C320000 | (tmesa->drawPitch * 4) ); /* clipper */ MMIO_OUT32(MMIO, 0x002C80 , 0x20008000 | tmesa->tridentScreen->height ); MMIO_OUT32(MMIO, 0x002C84 , 0x20000000 | tmesa->tridentScreen->width ); /* writemask */ MMIO_OUT32(MMIO, 0x002C94 , 0xFFFFFFFF ); if (vertsize == 4) { MMIO_OUT32(MMIO, 0x002818 , 0x0003A020 ); MMIO_OUT32(MMIO, 0x00281C , 0x00098021 ); *ftmp = v0->v.x; MMIO_OUT32(MMIO, 0x002820 , clr ); *ftmp = v0->v.y; MMIO_OUT32(MMIO, 0x002824 , clr ); *ftmp = v0->v.z; MMIO_OUT32(MMIO, 0x002828 , clr ); #if 0 *ftmp = v0->v.w; MMIO_OUT32(MMIO, 0x00282C , clr ); #endif MMIO_OUT32(MMIO, 0x00282C , v0->ui[coloridx] ); *ftmp = v1->v.x; MMIO_OUT32(MMIO, 0x002820 , clr ); *ftmp = v1->v.y; MMIO_OUT32(MMIO, 0x002824 , clr ); *ftmp = v1->v.z; MMIO_OUT32(MMIO, 0x002828 , clr ); #if 0 *ftmp = v1->v.w; MMIO_OUT32(MMIO, 0x00282C , clr ); #endif MMIO_OUT32(MMIO, 0x00282C , v1->ui[coloridx] ); *ftmp = v2->v.x; MMIO_OUT32(MMIO, 0x002820 , clr ); *ftmp = v2->v.y; MMIO_OUT32(MMIO, 0x002824 , clr ); *ftmp = v2->v.z; MMIO_OUT32(MMIO, 0x002828 , clr ); #if 0 *ftmp = v2->v.w; MMIO_OUT32(MMIO, 0x00282C , clr ); #endif MMIO_OUT32(MMIO, 0x00282C , v2->ui[coloridx] ); MMIO_OUT32(MMIO, 0x00281C , 0x00093020 ); *ftmp = v3->v.x; MMIO_OUT32(MMIO, 0x002820 , clr ); *ftmp = v3->v.y; MMIO_OUT32(MMIO, 0x002824 , clr ); *ftmp = v3->v.z; MMIO_OUT32(MMIO, 0x002828 , clr ); #if 0 *ftmp = v3->v.w; MMIO_OUT32(MMIO, 0x00282C , clr ); #endif MMIO_OUT32(MMIO, 0x00282C , v3->ui[coloridx] ); } #endif UNLOCK_HARDWARE( tmesa ); }
int DrawTriangle( tridentContextPtr tmesa) { unsigned char *MMIO = tmesa->tridentScreen->mmio.map; dmaBufRec clr; printf("DRAW TRI\n"); Init3D(tmesa); printf("ENGINE STATUS 0x%x\n",MMIO_IN32(MMIO, 0x2800)); MMIO_OUT32(MMIO, 0x002800, 0x00000000 ); #if 0 MMIO_OUT32(MMIO, 0x002368 , MMIO_IN32(MMIO,0x002368)|1 ); #endif MMIO_OUT32(MMIO, 0x002C00 , 0x00000014 ); #if 0 MMIO_OUT32(MMIO, 0x002C04 , 0x0A8004C0 ); #else MMIO_OUT32(MMIO, 0x002C04 , 0x0A8000C0 ); #endif #if 0 MMIO_OUT32(MMIO, 0x002C08 , 0x00000000 ); MMIO_OUT32(MMIO, 0x002C0C , 0xFFCCCCCC ); MMIO_OUT32(MMIO, 0x002C10 , 0x3F800000 ); MMIO_OUT32(MMIO, 0x002C14 , 0x3D0D3DCB ); MMIO_OUT32(MMIO, 0x002C2C , 0x70000000 ); MMIO_OUT32(MMIO, 0x002C24 , 0x00202C00 ); MMIO_OUT32(MMIO, 0x002C28 , 0xE0002500 ); MMIO_OUT32(MMIO, 0x002C30 , 0x00000000 ); MMIO_OUT32(MMIO, 0x002C34 , 0xE0000000 ); MMIO_OUT32(MMIO, 0x002C38 , 0x00000000 ); #endif MMIO_OUT32(MMIO, 0x002C50 , 0x00000000 ); MMIO_OUT32(MMIO, 0x002C54 , 0x0C320C80 ); MMIO_OUT32(MMIO, 0x002C50 , 0x00000000 ); MMIO_OUT32(MMIO, 0x002C54 , 0x0C320C80 ); MMIO_OUT32(MMIO, 0x002C80 , 0x20008258 ); MMIO_OUT32(MMIO, 0x002C84 , 0x20000320 ); MMIO_OUT32(MMIO, 0x002C94 , 0xFFFFFFFF ); #if 0 MMIO_OUT32(MMIO, 0x002D00 , 0x00009009 ); MMIO_OUT32(MMIO, 0x002D38 , 0x00000000 ); MMIO_OUT32(MMIO, 0x002D94 , 0x20002000 ); MMIO_OUT32(MMIO, 0x002D50 , 0xf0000000 ); MMIO_OUT32(MMIO, 0x002D80 , 0x24002000 ); MMIO_OUT32(MMIO, 0x002D98 , 0x81000000 ); MMIO_OUT32(MMIO, 0x002DB0 , 0x81000000 ); MMIO_OUT32(MMIO, 0x002DC8 , 0x808000FF ); MMIO_OUT32(MMIO, 0x002DD4 , 0x02000200 ); MMIO_OUT32(MMIO, 0x002DD8 , 0x02000200 ); MMIO_OUT32(MMIO, 0x002D30 , 0x02092400 ); MMIO_OUT32(MMIO, 0x002D04 , 0x00102120 ); MMIO_OUT32(MMIO, 0x002D08 , 0xFFFFFFFF ); MMIO_OUT32(MMIO, 0x002D0C , 0xF00010D0 ); MMIO_OUT32(MMIO, 0x002D10 , 0xC0000400 ); #endif MMIO_OUT32(MMIO, 0x002814, 0x00000000 ); #if 0 MMIO_OUT32(MMIO, 0x002818 , 0x00036C20 ); #else MMIO_OUT32(MMIO, 0x002818 , 0x00036020 ); #endif MMIO_OUT32(MMIO, 0x00281C , 0x00098081 ); printf("first TRI\n"); clr.f = 5.0; MMIO_OUT32(MMIO, 0x002820 , clr.i ); clr.f = 595.0; MMIO_OUT32(MMIO, 0x002824 , clr.i ); clr.f = 1.0; MMIO_OUT32(MMIO, 0x002828 , clr.i ); MMIO_OUT32(MMIO, 0x00282C , 0x00FF00 ); #if 0 clr.f = 0.0; MMIO_OUT32(MMIO, 0x002830 , clr.i ); clr.f = 1.0; MMIO_OUT32(MMIO, 0x002834 , clr.i ); #endif clr.f = 5.0; MMIO_OUT32(MMIO, 0x002820 , clr.i ); clr.f = 5.0; MMIO_OUT32(MMIO, 0x002824 , clr.i ); clr.f = 1.0; MMIO_OUT32(MMIO, 0x002828 , clr.i ); MMIO_OUT32(MMIO, 0x00282C , 0xFF0000 ); #if 0 clr.f = 0.0; MMIO_OUT32(MMIO, 0x002830 , clr.i ); clr.f = 0.0; MMIO_OUT32(MMIO, 0x002834 , clr.i ); #endif clr.f = 395.0; printf("0x%x\n",clr.i); MMIO_OUT32(MMIO, 0x002820 , clr.i ); clr.f = 5.0; MMIO_OUT32(MMIO, 0x002824 , clr.i ); clr.f = 1.0; MMIO_OUT32(MMIO, 0x002828 , clr.i ); MMIO_OUT32(MMIO, 0x00282C , 0xFF ); #if 0 clr.f = 1.0; MMIO_OUT32(MMIO, 0x002830 , clr.i ); clr.f = 0.0; MMIO_OUT32(MMIO, 0x002834 , clr.i ); #endif printf("sec TRI\n"); MMIO_OUT32(MMIO, 0x00281C , 0x00093980 ); clr.f = 395.0; MMIO_OUT32(MMIO, 0x002820 , clr.i ); clr.f = 595.0; MMIO_OUT32(MMIO, 0x002824 , clr.i ); clr.f = 1.0; MMIO_OUT32(MMIO, 0x002828 , clr.i ); MMIO_OUT32(MMIO, 0x00282C , 0x00FF00 ); #if 0 clr.f = 1.0; MMIO_OUT32(MMIO, 0x002830 , clr.i ); clr.f = 1.0; MMIO_OUT32(MMIO, 0x002834 , clr.i ); #endif #if 0 MMIO_OUT32(MMIO, 0x002368 , MMIO_IN32(MMIO,0x002368)&0xfffffffe ); #endif printf("fin TRI\n"); return 0; }