|
|

楼主 |
发表于 2008-3-4 09:44:00
|
显示全部楼层
Re: Re:【新手问题】D3D7纹理绘制失败(简单代码)
kp_ns: Re:【新手问题】D3D7纹理绘制失败(简单代码)
切换一下窗口好象就行了,是不是绘制函数放在WM_PAINT:下的问题,
还有
VERTEX verts[] = {
{ (float)rect...
谢谢提示!
还是粗心了,呵呵
现在能够渲染图形了。但是不知道何故,纹理还是渲染不上去。
比如象下面的代码只能绘制出漫反射的颜色,纹理并不能绘制上去。还 请指教!
- typedef struct
- {
- float x, y, z; // 2D coordinates
- float rhw; // rhw
- DWORD c;
- float u, v; // texture coordinates
- } VERTEX;
- #define VERTEX_FVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1)
- float ltx, lty, rtx, rty, lbx, lby, rbx, rby;
- ltx = (float)rect.left;
- lty = (float)rect.top;
- rtx = (float)rect.right;
- rty = (float)rect.top;
- lbx = (float)rect.left;
- lby = (float)rect.bottom;
- rbx = (float)rect.right;
- rby = (float)rect.bottom;
- VERTEX verts[] = {
- { ltx, lty, 0.0f, 0.0f, 0xff0000ff, 0.0f, 0.0f },
- { rtx, rty, 0.0f, 0.0f, 0xffff0000, 1.0f, 0.0f },
- { rbx, rby, 0.0f, 0.0f, 0xff00ff00, 1.0f, 1.0f },
- { ltx, lty, 0.0f, 0.0f, 0xff0000ff, 0.0f, 0.0f },
- { rbx, rby, 0.0f, 0.0f, 0xff00ff00, 1.0f, 1.0f },
- { lbx, lby, 0.0f, 0.0f, 0xff000000, 0.0f, 1.0f }
- };
- g_pD3DDevice->BeginScene();
- g_pD3DDevice->SetTexture(0, g_pDDrawTexSurface);
- HRESULT hr = g_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST, VERTEX_FVF, verts, 6, D3DDP_WAIT);
- g_pD3DDevice->EndScene();
- ::ClientToScreen(g_hWnd, (LPPOINT)&rect);
- ::ClientToScreen(g_hWnd, (LPPOINT)&rect+1);
- g_pDDrawScrSurface->Blt(&rect, g_pDDrawWinSurface, NULL, 0, 0);
复制代码
但是如果吧最后一句blt的页面换成纹理页面,又可以渲染到主页面 上。也就是说纹理值是正确的 。
简单vc6工程:
|
|