Beispiel #1
0
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();
}
Beispiel #5
0
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 );
}
Beispiel #6
0
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;  
}