Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef ENABLE_RENDER_TARGET
- void CGraphicImageInstance::OnRender()
- {
- CGraphicTexture* graphicTexture = m_roImage->GetTexturePointer();
- float fimgWidth = m_roImage->GetWidth() * m_v2Scale.x;
- float fimgHeight = m_roImage->GetHeight() * m_v2Scale.y;
- const RECT& c_rRect = m_roImage->GetRectReference();
- float texReverseWidth = 1.0f / float(graphicTexture->GetWidth());
- float texReverseHeight = 1.0f / float(graphicTexture->GetHeight());
- float su = c_rRect.left * texReverseWidth;
- float sv = c_rRect.top * texReverseHeight;
- float eu = (c_rRect.left + (c_rRect.right - c_rRect.left)) * texReverseWidth;
- float ev = (c_rRect.top + (c_rRect.bottom - c_rRect.top)) * texReverseHeight;
- TPDTVertex vertices[4];
- vertices[0].position.x = m_v2Position.x - 0.5f;
- vertices[0].position.y = m_v2Position.y - 0.5f;
- vertices[0].position.z = 0.0f;
- vertices[0].texCoord = TTextureCoordinate(su, sv);
- vertices[0].diffuse = m_DiffuseColor;
- vertices[1].position.x = m_v2Position.x + fimgWidth - 0.5f;
- vertices[1].position.y = m_v2Position.y - 0.5f;
- vertices[1].position.z = 0.0f;
- vertices[1].texCoord = TTextureCoordinate(eu, sv);
- vertices[1].diffuse = m_DiffuseColor;
- vertices[2].position.x = m_v2Position.x - 0.5f;
- vertices[2].position.y = m_v2Position.y + fimgHeight - 0.5f;
- vertices[2].position.z = 0.0f;
- vertices[2].texCoord = TTextureCoordinate(su, ev);
- vertices[2].diffuse = m_DiffuseColor;
- vertices[3].position.x = m_v2Position.x + fimgWidth - 0.5f;
- vertices[3].position.y = m_v2Position.y + fimgHeight - 0.5f;
- vertices[3].position.z = 0.0f;
- vertices[3].texCoord = TTextureCoordinate(eu, ev);
- vertices[3].diffuse = m_DiffuseColor;
- if (CGraphicBase::SetPDTStream(vertices, 4))
- {
- CGraphicBase::SetDefaultIndexBuffer(CGraphicBase::DEFAULT_IB_FILL_RECT);
- STATEMANAGER.SetTexture(0, graphicTexture->GetD3DTexture());
- STATEMANAGER.SetTexture(1, NULL);
- STATEMANAGER.SetVertexShader(D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1);
- STATEMANAGER.DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 4, 0, 2);
- }
- }
- #else
- void CGraphicImageInstance::OnRender()
- {
- CGraphicImage * pImage = m_roImage.GetPointer();
- CGraphicTexture * pTexture = pImage->GetTexturePointer();
- float fimgWidth = pImage->GetWidth()*m_vScale;
- float fimgHeight = pImage->GetHeight()*m_vScale;
- const RECT& c_rRect = pImage->GetRectReference();
- float texReverseWidth = 1.0f / float(pTexture->GetWidth());
- float texReverseHeight = 1.0f / float(pTexture->GetHeight());
- float su = c_rRect.left * texReverseWidth;
- float sv = c_rRect.top * texReverseHeight;
- float eu = (c_rRect.left + (c_rRect.right-c_rRect.left)) * texReverseWidth;
- float ev = (c_rRect.top + (c_rRect.bottom-c_rRect.top)) * texReverseHeight;
- TPDTVertex vertices[4];
- vertices[0].position.x = m_v2Position.x-0.5f;
- vertices[0].position.y = m_v2Position.y-0.5f;
- vertices[0].position.z = 0.0f;
- vertices[0].texCoord = TTextureCoordinate(su, sv);
- vertices[0].diffuse = m_DiffuseColor;
- vertices[1].position.x = m_v2Position.x + fimgWidth-0.5f;
- vertices[1].position.y = m_v2Position.y-0.5f;
- vertices[1].position.z = 0.0f;
- vertices[1].texCoord = TTextureCoordinate(eu, sv);
- vertices[1].diffuse = m_DiffuseColor;
- vertices[2].position.x = m_v2Position.x-0.5f;
- vertices[2].position.y = m_v2Position.y + fimgHeight-0.5f;
- vertices[2].position.z = 0.0f;
- vertices[2].texCoord = TTextureCoordinate(su, ev);
- vertices[2].diffuse = m_DiffuseColor;
- vertices[3].position.x = m_v2Position.x + fimgWidth-0.5f;
- vertices[3].position.y = m_v2Position.y + fimgHeight-0.5f;
- vertices[3].position.z = 0.0f;
- vertices[3].texCoord = TTextureCoordinate(eu, ev);
- vertices[3].diffuse = m_DiffuseColor;
- // 2004.11.18.myevan.ctrl+alt+del 반복 사용시 튕기는 문제
- if (CGraphicBase::SetPDTStream(vertices, 4))
- {
- CGraphicBase::SetDefaultIndexBuffer(CGraphicBase::DEFAULT_IB_FILL_RECT);
- STATEMANAGER.SetTexture(0, pTexture->GetD3DTexture());
- STATEMANAGER.SetTexture(1, NULL);
- STATEMANAGER.SetVertexShader(D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1);
- STATEMANAGER.DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 4, 0, 2);
- }
- //OLD: STATEMANAGER.DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 4, 2, c_FillRectIndices, D3DFMT_INDEX16, vertices, sizeof(TPDTVertex));
- ////////////////////////////////////////////////////////////
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement