8,301
社区成员
发帖
与我相关
我的任务
分享
#define TEXTURE_COUNT 5000
#define VERTEX_COUNT TEXTURE_COUNT*6
void CRender::RenderExample()
{
if (m_pTexture != NULL)
{
UINT startTime = timeGetTime();
if (1)
{
for (int i=0, x=0, y=0; i<TEXTURE_COUNT; i++)
{
x = rand() % SCREEN_WIDTH;
y = rand() % SCREEN_HEIGHT;
RenderObj(m_pTexture, x, y, m_Width, m_Height);
}
}
else
{
SVertex2D vertexData[VERTEX_COUNT];
memset(vertexData, 0, sizeof(vertexData));
for (int i=0, x=0, y=0; i<VERTEX_COUNT; i+=6)
{
x = rand() % SCREEN_WIDTH;
y = rand() % SCREEN_HEIGHT;
vertexData[i].x = x;
vertexData[i].y = y;
vertexData[i].rhw = 1;
vertexData[i].color = 0xffffffff;
vertexData[i].tu = 0;
vertexData[i].tv = 0;
vertexData[i+1].x = x+m_Width;
vertexData[i+1].y = y;
vertexData[i+1].rhw = 1;
vertexData[i+1].color = 0xffffffff;
vertexData[i+1].tu = 1;
vertexData[i+1].tv = 0;
vertexData[i+2].x = x+m_Width;
vertexData[i+2].y = y+m_Height;
vertexData[i+2].rhw = 1;
vertexData[i+2].color = 0xffffffff;
vertexData[i+2].tu = 1;
vertexData[i+2].tv = 1;
vertexData[i+3].x = x+m_Width;
vertexData[i+3].y = y+m_Height;
vertexData[i+3].rhw = 1;
vertexData[i+3].color = 0xffffffff;
vertexData[i+3].tu = 1;
vertexData[i+3].tv = 1;
vertexData[i+4].x = x;
vertexData[i+4].y = y+m_Height;
vertexData[i+4].rhw = 1;
vertexData[i+4].color = 0xffffffff;
vertexData[i+4].tu = 0;
vertexData[i+4].tv = 1;
vertexData[i+5].x = x;
vertexData[i+5].y = y;
vertexData[i+5].rhw = 1;
vertexData[i+5].color = 0xffffffff;
vertexData[i+5].tu = 0;
vertexData[i+5].tv = 0;
}
m_pD3DDevice->SetTexture(0, m_pTexture);
m_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, VERTEX_COUNT/3, vertexData, sizeof(SVertex2D));
}
char szTime[32];
sprintf(szTime, "耗时:%d", timeGetTime()-startTime);
MessageBox(0, szTime, 0, MB_OK);
}
}