* Remove most unused WIN32 stuff.
[matthijs/ABM2.git] / ABM2 / Engine / VideoUpdate.cpp
index 21cf1ab3b9be296118e7b957b6578f1e2d918422..e3f36c585e29616602c53f7f1f8fcd7b04afb29d 100755 (executable)
@@ -6,16 +6,7 @@
 #include "../main.h"\r
 #include "VideoUpdate.h"\r
 \r
-// include the Direct3D Library file\r
-#ifdef WIN32\r
-#pragma comment (lib, "d3d9.lib")\r
-#pragma comment (lib, "d3dx9.lib")\r
 \r
-//////////////////////////////////////////////////////////////////////\r
-// Construction/Destruction\r
-//////////////////////////////////////////////////////////////////////\r
-LPDIRECT3DDEVICE9 d3ddev;    // the pointer to the device class\r
-#endif //WIN32\r
 CMMPointer<Dator<int> > CVideoUpdate::screenWidth=0;\r
 CMMPointer<Dator<int> > CVideoUpdate::screenHeight=0;\r
 CMMPointer<Dator<int> > CVideoUpdate::screenBPP=0;\r
@@ -23,55 +14,18 @@ int CVideoUpdate::scrWidth=640;
 int CVideoUpdate::scrHeight=480;\r
 int CVideoUpdate::scrBPP=16;\r
 \r
-CVideoUpdate::CVideoUpdate()\r
+CVideoUpdate::CVideoUpdate(CKernel* kernel) : ITask(kernel)\r
 {\r
-#ifdef WIN32\r
-       d3d = Direct3DCreate9(D3D_SDK_VERSION);\r
-\r
-       D3DPRESENT_PARAMETERS d3dpp;\r
-       D3DDISPLAYMODE d3ddm;\r
-       d3d->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);\r
-\r
-       ZeroMemory(&d3dpp, sizeof(d3dpp));\r
-       d3dpp.Windowed = true;\r
-       d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;\r
-       d3dpp.hDeviceWindow = hWnd;\r
-       //d3dpp.BackBufferFormat = d3ddm.Format;\r
-       d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;\r
-       d3dpp.BackBufferWidth = scrWidth;\r
-       d3dpp.BackBufferHeight = scrHeight;\r
-\r
-\r
-       // create a device class using this information and the info from the d3dpp stuct\r
-       d3d->CreateDevice(D3DADAPTER_DEFAULT,\r
-                                                                               D3DDEVTYPE_HAL,\r
-                                                                               hWnd,\r
-                                                                               D3DCREATE_SOFTWARE_VERTEXPROCESSING,\r
-                                                                               &d3dpp,\r
-                                                                               &d3ddev);\r
-\r
-           // Turn on alpha-blending\r
-    d3ddev->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);\r
-    // Set the render state up for source alpha blending.\r
-    d3ddev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);\r
-    d3ddev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);\r
-    // Get the alpha information solely from the texture.\r
-    d3ddev->SetTextureStageState(0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1);\r
-    d3ddev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);\r
-#endif // WIN32\r
+       assert(screenWidth && screenHeight && screenBPP);\r
+       this->g = new Graphics(scrWidth, scrHeight, 16, false);\r
 }\r
 \r
 CVideoUpdate::~CVideoUpdate()\r
 {\r
-#ifdef WIN32\r
-    if (d3ddev != NULL) d3ddev->Release();\r
-    if (d3d != NULL) d3d->Release();\r
-#endif // WIN32\r
 }\r
 \r
 bool CVideoUpdate::Start()\r
 {\r
-       assert(screenWidth && screenHeight && screenBPP);\r
 /*\r
        if(-1==SDL_InitSubSystem(SDL_INIT_VIDEO))\r
        {\r
@@ -96,29 +50,25 @@ bool CVideoUpdate::Start()
        //hide the mouse cursor\r
        SDL_ShowCursor(SDL_DISABLE);\r
 */\r
-#ifdef WIN32\r
-    d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_COLORVALUE(0.0f, 0.4f, 1.0f, 1.0f), 1.0f, 0);\r
-\r
-    d3ddev->BeginScene();    // begins the 3D scene\r
-#endif // WIN32\r
-\r
-               return true;\r
+       if (this->g->createDisplay())\r
+               return false;\r
+       this->g->setCullingMode(AM_CULL_NONE);\r
+       this->g->setBackground(COLOUR_RGBA(127, 127, 127, 255));\r
+       \r
+       /* Start a first scene */\r
+       this->g->beginScene();\r
+       return true;\r
 }\r
 \r
 void CVideoUpdate::Update()\r
 {\r
-#ifdef WIN32\r
-       // end frame\r
-       d3ddev->EndScene();\r
-       d3ddev->Present(NULL, NULL, NULL, NULL);\r
-\r
-       // start new frame\r
-       d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_COLORVALUE(0.0f, 0.4f, 1.0f, 1.0f), 1.0f, 0);\r
-       d3ddev->BeginScene();\r
-#endif // WIN32\r
+       this->g->endScene();\r
+       this->g->beginScene();\r
 }\r
 \r
 void CVideoUpdate::Stop()\r
 {\r
-//     SDL_QuitSubSystem(SDL_INIT_VIDEO);\r
+       /* End the last scene */\r
+       this->g->endScene();\r
+       delete this->g;\r
 }\r