Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[ConfigDialog] allwaysShowConfig=0 [RenderEngines] RE0="DirectXRE" RE1="openGLRE" countRenderEngines=2 defaultRenderEngine=0 #windowed=0 #screenWidth=1680 #screenHeight=1050 windowed=1 screenWidth=800 screenHeight=600 refreshRate=60 |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
mgeResult DirectXRE::Init(MyGameEngine* mge, HWND hOwnWnd) { MGE_INFO("%s", "Initializing RenderEngine..."); if(mge==NULL) // mge can't be NULL! return MGE_ERROR; this->m_mge = mge; if(hOwnWnd != NULL) { // user has a own window, take it! this->m_hWnd = hOwnWnd; this->m_bOwnWnd = true; } else { // create a new window MGE_INFO("%s", "No own window, creating one..."); /////////////////////////////////// // start a window this->m_bOwnWnd = false; ZeroMemory(&this->m_wc, sizeof(WNDCLASSEX)); // clear the memory // fill the struct with the infos this->m_wc.cbSize = sizeof(WNDCLASSEX); this->m_wc.style = CS_HREDRAW | CS_VREDRAW; this->m_wc.lpfnWndProc = (WNDPROC)WindowProc; this->m_wc.hInstance = DXRE_DLL_HANDLE; this->m_wc.hCursor = LoadCursor(NULL, IDC_ARROW); this->m_wc.lpszClassName = TEXT("mgeWndClass1"); if(this->m_mge->getConfig()->RenderEngineConfig.bWindowed) this->m_wc.hbrBackground = (HBRUSH)COLOR_WINDOW; // register the windowclass RegisterClassEx(&this->m_wc); // create the window this->m_hWnd = CreateWindowEx(NULL ,TEXT("mgeWndClass1") ,TEXT("My Game Engine") ,this->m_mge->getConfig()->RenderEngineConfig.bWindowed ? WS_OVERLAPPEDWINDOW : WS_EX_TOPMOST | WS_POPUP // -> FULLSCREEN //,WS_OVERLAPPEDWINDOW // -> NORMAL ,GetSystemMetrics(SM_CXSCREEN) / 2 - this->m_mge->getConfig()->RenderEngineConfig.iScreenWidth / 2 ,GetSystemMetrics(SM_CYSCREEN) / 2 - this->m_mge->getConfig()->RenderEngineConfig.iScreenHeight / 2 ,this->m_mge->getConfig()->RenderEngineConfig.iScreenWidth ,this->m_mge->getConfig()->RenderEngineConfig.iScreenHeight ,NULL ,NULL ,DXRE_DLL_HANDLE ,NULL); if(this->m_hWnd == NULL) MGE_ERROR("%s", "Couldn't create the Window!", MGE_ERROR); MGE_INFO("%s", "Window created!"); } // display the window on the screen ShowWindow(this->m_hWnd, 1); /////////////////////////////////// // init DirectX MGE_INFO("%s", "Initializing DirectX..."); this->m_d3d = Direct3DCreate9(D3D_SDK_VERSION); // create the direct3d interface ZeroMemory(&this->m_d3dPresentParams, sizeof(D3DPRESENT_PARAMETERS)); this->m_d3dPresentParams.BackBufferWidth = this->m_mge->getConfig()->RenderEngineConfig.iScreenWidth; this->m_d3dPresentParams.BackBufferHeight = this->m_mge->getConfig()->RenderEngineConfig.iScreenHeight; this->m_d3dPresentParams.BackBufferFormat = D3DFMT_A8R8G8B8; // nachher via config this->m_d3dPresentParams.BackBufferCount = 1; //this->m_d3dPresentParams.MultiSampleType = D3DMULTISAMPLE_NONE; this->m_d3dPresentParams.SwapEffect = D3DSWAPEFFECT_DISCARD; this->m_d3dPresentParams.hDeviceWindow = this->m_hWnd; this->m_d3dPresentParams.Windowed = this->m_mge->getConfig()->RenderEngineConfig.bWindowed; //this->m_d3dPresentParams.EnableAutoDepthStencil = FALSE; //this->m_d3dPresentParams.FullScreen_RefreshRateInHz = this->m_mge->getConfig()->RenderEngineConfig.bWindowed ? D3DPRESENT_RATE_DEFAULT : this->m_mge->getConfig()->RenderEngineConfig.iRefreshRate; //this->m_d3dPresentParams.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; if(FAILED(this->m_d3d->CreateDevice(D3DADAPTER_DEFAULT ,D3DDEVTYPE_HAL ,this->m_hWnd ,D3DCREATE_SOFTWARE_VERTEXPROCESSING ,&this->m_d3dPresentParams ,&this->m_d3dDevice))) { MGE_ERROR("%s", "Couldn't create the d3d device!", MGE_ERROR); } this->m_d3dDevice->GetDeviceCaps(&this->m_d3dCaps); if(!this->m_mge->getConfig()->RenderEngineConfig.bWindowed) ShowCursor(FALSE); MGE_INFO("%s", "DirectX initialized"); // dreieck laden ZeroMemory(&this->m_dreieck, sizeof(SVertex)*3); this->m_dreieck[0].x = 0.0f; this->m_dreieck[0].y = 1.0f; this->m_dreieck[0].z = 0.0f; this->m_dreieck[0].dwColor = D3DCOLOR_XRGB(255, 0, 0); this->m_dreieck[1].x = 1.0f; this->m_dreieck[1].y =-1.0f; this->m_dreieck[1].z = 0.0f; this->m_dreieck[0].dwColor = D3DCOLOR_XRGB(0, 255, 0); this->m_dreieck[2].x =-1.0f; this->m_dreieck[2].y =-1.0f; this->m_dreieck[2].z = 0.0f; this->m_dreieck[0].dwColor = D3DCOLOR_XRGB(0, 0, 255); this->m_d3dDevice->SetFVF(D3DFVF_XYZ | D3DFVF_DIFFUSE); this->m_d3dDevice->SetRenderState(D3DRS_LIGHTING, FALSE); this->m_d3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); this->m_d3dDevice->SetRenderState(D3DRS_DITHERENABLE, TRUE); MGE_INFO("%s", "RenderEngine initialized!"); return MGE_OK; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
mgeResult DirectXRE::render(float fTime) { this->m_d3dDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(255, 0 , 0), 1.0f, 0); this->m_d3dDevice->BeginScene(); this->m_d3dDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST ,1 ,this->m_dreieck ,sizeof(SVertex)); this->m_d3dDevice->EndScene(); this->m_d3dDevice->Present(NULL, NULL, NULL, NULL); return MGE_OK; } |
Zitat
MyGameEngine - Logfile
27.04.2008 16:56:15 INFO: Log started!
(mgeLogger::startLogger @ mgelogger.cpp 89)
27.04.2008 16:56:15 INFO: Debug Version!
(mgeLogger::startLogger @ mgelogger.cpp 91)
27.04.2008 16:56:15 INFO: Initializing mge...
(MyGameEngine::Init @ mygameengine.cpp 34)
27.04.2008 16:56:15 INFO: Loading config...
(mgeConfig::loadConfig @ mgeconfig.cpp 31)
27.04.2008 16:56:15 INFO: Allways show Config: False
(mgeConfig::loadConfig @ mgeconfig.cpp 37)
27.04.2008 16:56:15 INFO: countRenderStates: 2
(mgeConfig::loadConfig @ mgeconfig.cpp 44)
27.04.2008 16:56:15 INFO: RenderEngine: DirectXRE
(mgeConfig::loadConfig @ mgeconfig.cpp 54)
27.04.2008 16:56:15 INFO: RenderEngine: openGLRE
(mgeConfig::loadConfig @ mgeconfig.cpp 54)
27.04.2008 16:56:15 INFO: Default RenderEngine: DirectXRE
(mgeConfig::loadConfig @ mgeconfig.cpp 60)
27.04.2008 16:56:15 INFO: Windowed: True
(mgeConfig::loadConfig @ mgeconfig.cpp 67)
27.04.2008 16:56:15 INFO: Default screen width: 800
(mgeConfig::loadConfig @ mgeconfig.cpp 73)
27.04.2008 16:56:15 INFO: Default screen height: 600
(mgeConfig::loadConfig @ mgeconfig.cpp 74)
27.04.2008 16:56:15 INFO: Config loaded!
(mgeConfig::loadConfig @ mgeconfig.cpp 79)
27.04.2008 16:56:15 INFO: Initializing RenderEngine...
(DirectXRE::Init @ directxre.cpp 46)
27.04.2008 16:56:15 INFO: No own window, creating one...
(DirectXRE::Init @ directxre.cpp 56)
27.04.2008 16:56:16 INFO: Window created!
(DirectXRE::Init @ directxre.cpp 93)
27.04.2008 16:56:16 INFO: Initializing DirectX...
(DirectXRE::Init @ directxre.cpp 100)
27.04.2008 16:56:16 INFO: DirectX initialized
(DirectXRE::Init @ directxre.cpp 130)
27.04.2008 16:56:40 INFO: RenderEngine initialized!
(DirectXRE::Init @ directxre.cpp 142)
27.04.2008 16:56:44 INFO: mge initialized...
(MyGameEngine::Init @ mygameengine.cpp 66)
27.04.2008 16:56:47 INFO: Entering message loop...
(WinMain @ main.cpp 29)
27.04.2008 16:57:52 INFO: End of message loop!
(WinMain @ main.cpp 51)
27.04.2008 16:57:52 INFO: Log stopped!
(mgeLogger::stopLogger @ mgelogger.cpp 131)
Zitat von »"TrikkieMikkie"«
Das Backbuffer-Format D3DFMT_A8R8G8B8 könnte ein Knackpunkt sein. Du leerst bei "Clear" auch den Z-Buffer, welcher kein Format hat.
Zitat von »"TrikkieMikkie"«
Ich würde einfach prüfen, welche Formate überhaupt unterstützt werden. So ist man auf der sicheren Seite.
Zitat von »"TheWinner"«
jaja, ist klar; ich wusste jedoch, dass dieses format von meiner graka (GeForce 8800GT ) unterstützt wird, und habe es deshalb von hand eingetragen, um schon mal ein resultat zu sehen
Werbeanzeige