ich habe Probleme bei Texturen mit DirectX9



  • #define WINDOW_CLASS_NAME "Game Shell Window" 
    #define WIN32_LEAN_AND_MEAN 
    
    #define SCR_WIDTH  640
    #define SCR_HEIGHT 480
    
    #include <windows.h> 
    #include <d3dx9.h> 
    #include <dinput.h>
    
    #define W 1680
    #define H 1050
    
    #define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0) 
    #define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1) 
    #define D3D_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE) 
    LPDIRECTINPUT8 lpDI;
    LPDIRECTINPUTDEVICE8 lpDIKeyboard = NULL;
    
    float m_angle;
    float VerX = 0.0f;
    float VerY = 0.0f;
    float VerZ = 0.0f;
    float RotX = 0.0f;
    float RotY = 0.0f;
    float RotZ = 0.0f;
    D3DXMATRIX m_worldMat,m_viewMat,mProjectionMat;
    D3DXVECTOR3 m_eyeVec,m_lookVec,m_upVec;
    D3DXMATRIX ViewMatrix;
    LPDIRECT3DTEXTURE9 lpTexture;
    #define Texture "C:/users/michael/bilder/untitled.bmp"
    
    struct CustomVertex 
    { 
    
        float x,y,z; 
    
        DWORD color; 
    	float tu,tv;
    }; 
    
    CustomVertex Tria[]= 
    { 
    	{-1.0f,0.0f,0.0f,D3DCOLOR_XRGB(0,0,255),0.0f,1.0f},
    	{0.0f,2.0f,0.0f,D3DCOLOR_XRGB(0,0,255),0.0f,0.5f},
    	{1.0f,0.0f,0.0f,D3DCOLOR_XRGB(0,0,255),1.0f,1.0f},
    
    }; 
    
    void Init_3D(); 
    void Render(); 
    void Init_Scene(); 
    void End_All(); 
    
    LPDIRECT3D9 D3DGE = NULL; 
    LPDIRECT3DDEVICE9 D3DGR = NULL; 
    LPDIRECT3DVERTEXBUFFER9 rew = NULL; 
    LPDIRECT3DVERTEXBUFFER9 rew2 = NULL;
    D3DLIGHT9 Light;
    
    HWND main_window_handle = NULL; 
    HINSTANCE hinstance_app = NULL; 
    
    HRESULT hr;   
    
    LRESULT CALLBACK WindowProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam) 
    { 
    
    PAINTSTRUCT ps; 
    HDC hdc; 
    
    switch(msg) 
    { 
        case WM_CREATE: 
        { 
            return(0); 
        } 
        break; 
    
        case WM_PAINT: 
        { 
            hdc = BeginPaint(hwnd,&ps); 
            EndPaint(hwnd,&ps); 
            return(0); 
        } 
        break; 
    
        case WM_DESTROY: 
        { 
            PostQuitMessage(0); 
            return(0); 
        } 
        break; 
    
        default: 
        break; 
    
    } 
    return (DefWindowProc(hwnd, msg, wparam, lparam)); 
    
    } 
    
    int WINAPI WinMain( HINSTANCE hinstance,HINSTANCE hprevinstance,LPSTR lpcmdline,int ncmdshow) 
    { 
    
    //windows Fenster
    if (!RegisterClassEx(&winclass)) 
    return(0); 
    
    if (!(hwnd = CreateWindowEx(NULL,WINDOW_CLASS_NAME,"My Game Shell",WS_POPUP | WS_VISIBLE,0,0,1680,1050,NULL,NULL,hinstance,NULL))) 
        return(0); 
    
    main_window_handle = hwnd; 
    
    Init_3D(); 
    Init_Scene(); 
    while(TRUE) 
        { 
        if (PeekMessage(&msg,NULL,0,0,PM_REMOVE)) 
        { 
    
        if (msg.message == WM_QUIT) 
        break; 
    
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
        if(KEYDOWN(VK_ESCAPE)) 
        { 
    
        SendMessage(main_window_handle,WM_CLOSE,0,0); 
    
        } 
    
        } 
    Render();
        } 
        End_All(); 
    
    return(msg.wParam); 
    
    } 
    
    void Init_3D() 
    { 
     //Init_3DFUNKtion  
    } 
    
    void Render() 
    { 
        D3DXMATRIX Trans;
    	D3DXMATRIX Rotation;
    	D3DXMATRIX TundR;
        D3DXMatrixLookAtLH(&ViewMatrix,
                           &D3DXVECTOR3( 0.0f,  0.0f,-10.0f ),
                           &D3DXVECTOR3( 0.0f,  0.0f, 0.0f ),
                           &D3DXVECTOR3( 0.0f,  1.0f, 0.0f ));
    	    D3DGR->SetStreamSource(0,rew,0,sizeof(CustomVertex)); 
    
    	D3DGR->SetTexture(0,lpTexture);
        D3DGR->DrawPrimitive(D3DPT_TRIANGLELIST,0,12);
    	D3DGR->SetRenderState(D3DRS_ZENABLE,true);
    	D3DGR->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);
    
        D3DGR->EndScene(); 
        D3DGR->Present(NULL,NULL,NULL,NULL);
    
    } 
    void Init_Scene() 
    { 
    
    	D3DXCreateTextureFromFile(D3DGR,Texture,&lpTexture);
    	D3DGR->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);
        D3DGR->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE); 
    	void* VertexBufferStart; 
    
        if(FAILED(D3DGR->CreateVertexBuffer(3*sizeof(Tria),D3DUSAGE_WRITEONLY,D3D_CUSTOMVERTEX,D3DPOOL_MANAGED,&rew,NULL)))
    	SendMessage(main_window_handle,WM_CLOSE,0,0);
        if(FAILED(rew->Lock(0,0,&VertexBufferStart,0)))
        SendMessage(main_window_handle,WM_CLOSE,0,0);
       memcpy(VertexBufferStart,Tria,sizeof(Tria));
        rew->Unlock(); 
        D3DGR->SetFVF(D3D_CUSTOMVERTEX); 
    
    } 
    
    void End_All() 
    { 
    }
    

Anmelden zum Antworten