首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

为什么不能正常显示呢?解决方法

2012-04-08 
为什么不能正常显示呢?为什么没有显示到东西呢?我原来没有使用DXUT的现在只有黑色的一片,什么都没有C/C++

为什么不能正常显示呢?
为什么没有显示到东西呢?
我原来没有使用DXUT的

现在只有黑色的一片,什么都没有

C/C++ code
#include "head.h"#include "define.h"#include "DXUTsettingsdlg.h"#include "SDKmisc.h"#pragma warning(disable: 4995)#define WM_MOUSEWHEEL 0x020A//***************** Camera *********************************        CModelViewerCamera MyCamera;//***************** Model **********************************    Model_info *model;using namespace std;int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){    DXUTSetCallbackD3D9DeviceCreated( OnCreateDevice );    DXUTSetCallbackD3D9FrameRender( OnFrameRender );    DXUTSetCallbackMsgProc( MsgProc );    DXUTSetCallbackFrameMove( OnFrameMove );    DXUTInit( true, true ); // Parse the command line and show msgboxes    DXUTCreateWindow( L"G" );    DXUTCreateDevice( true, 1024, 768 );    DXUTMainLoop();//*****************    Wait Message *********************    return DXUTGetExitCode();}LRESULT CALLBACK MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool* pbNoFurtherProcessing, void* pUserContext ){    MyCamera.HandleMessages( hWnd, uMsg, wParam, lParam );    return 0;}HRESULT CALLBACK OnCreateDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext ){    pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0);    model = LoadModel_Texture(L"I:\\I disk\\可移动磁盘 (L)\\3DS文件转换为X文件\\conv3ds\\test.x", L"I:\\I disk\\可移动磁盘 (L)\\3DS文件转换为X文件\\conv3ds\\Serah.jpg", pd3dDevice);    D3DXVECTOR3 eyePt(0.0f, 0.0f, 50.0f);    D3DXVECTOR3 lookAt(0.0f, 0.0f, 0.0f);    MyCamera.SetViewParams(&eyePt, &lookAt);    float fAspectRatio = pBackBufferSurfaceDesc->Width / ( FLOAT )pBackBufferSurfaceDesc->Height;    MyCamera.SetProjParams( D3DX_PI / 4, fAspectRatio, 0.1f, 1000.0f );    MyCamera.SetWindow( pBackBufferSurfaceDesc->Width, pBackBufferSurfaceDesc->Height );    return S_OK;}void CALLBACK OnFrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext ){        if (pd3dDevice->BeginScene())        {//*****************************************************            D3DXMATRIX world = *MyCamera.GetWorldMatrix() ;            pd3dDevice->SetTransform(D3DTS_WORLD, &world) ;            // Set view matrix            D3DXMATRIX view  = *MyCamera.GetViewMatrix() ;            pd3dDevice->SetTransform(D3DTS_VIEW, &view) ;            // Set projection matrix            D3DXMATRIX proj  = *MyCamera.GetProjMatrix() ;            pd3dDevice->SetTransform(D3DTS_PROJECTION, &proj) ;//***************** Render ****************************            model->Mesh->DrawSubset(0);            pd3dDevice->SetTexture(0, model->texture); //***************** Render ****************************            pd3dDevice->EndScene();            pd3dDevice->Present(NULL, NULL, NULL, NULL);        }}void CALLBACK OnFrameMove( double fTime, float fElapsedTime, void* pUserContext ){        MyCamera.FrameMove( fElapsedTime );}


[解决办法]
3d的东东,我不懂 我肯定要学习,先标记

楼主调试时这些回调函数都可以进入吗,可以设个断点试试看是否进入了回调
[解决办法]
找个dxut正确的框架,然后修改添加自己的绘制函数。
[解决办法]
加入都能进入的话,你看看那个位置返回错误了用LRESULT hr = 看看;
问题就应该出现在问题的位置

热点排行