ajouts des fonts (texte)
This commit is contained in:
@@ -13,6 +13,11 @@ ApplicationClass::ApplicationClass()
|
||||
m_Sprite = 0;
|
||||
m_Timer = 0;
|
||||
m_Lights = 0;
|
||||
m_FontShader = 0;
|
||||
m_Font = 0;
|
||||
m_TextString1 = 0;
|
||||
m_TextString2 = 0;
|
||||
m_TextString3 = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +33,7 @@ ApplicationClass::~ApplicationClass()
|
||||
|
||||
bool ApplicationClass::Initialize(int screenWidth, int screenHeight, HWND hwnd)
|
||||
{
|
||||
char testString1[32], testString2[32], testString3[32];
|
||||
char modelFilename[128];
|
||||
char textureFilename1[128], textureFilename2[128];
|
||||
char bitmapFilename[128];
|
||||
@@ -61,6 +67,57 @@ bool ApplicationClass::Initialize(int screenWidth, int screenHeight, HWND hwnd)
|
||||
m_Camera->SetPosition(0.0f, 0.0f, -12.0f);
|
||||
m_Camera->SetRotation(0.0f, 0.0f, 0.0f);
|
||||
|
||||
// Create and initialize the font shader object.
|
||||
m_FontShader = new FontShaderClass;
|
||||
|
||||
result = m_FontShader->Initialize(m_Direct3D->GetDevice(), hwnd);
|
||||
if (!result)
|
||||
{
|
||||
MessageBox(hwnd, L"Could not initialize the font shader object.", L"Error", MB_OK);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Create and initialize the font object.
|
||||
m_Font = new FontClass;
|
||||
|
||||
result = m_Font->Initialize(m_Direct3D->GetDevice(), m_Direct3D->GetDeviceContext(), 0);
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Set the strings we want to display.
|
||||
strcpy_s(testString1, "Yo");
|
||||
strcpy_s(testString2, "Les");
|
||||
strcpy_s(testString3, "Noobs !");
|
||||
|
||||
// Create and initialize the first text object.
|
||||
m_TextString1 = new TextClass;
|
||||
|
||||
result = m_TextString1->Initialize(m_Direct3D->GetDevice(), m_Direct3D->GetDeviceContext(), screenWidth, screenHeight, 32, m_Font, testString1, 25, screenHeight / 2 - m_Font->GetFontHeight(), 1.0f, 1.0f, 1.0f);
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Create and initialize the second text object.
|
||||
m_TextString2 = new TextClass;
|
||||
|
||||
result = m_TextString2->Initialize(m_Direct3D->GetDevice(), m_Direct3D->GetDeviceContext(), screenWidth, screenHeight, 32, m_Font, testString2, 250, screenHeight / 2 - m_Font->GetFontHeight(), 0.0f, 1.0f, 1.0f);
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Create and initialize the second text object.
|
||||
m_TextString3 = new TextClass;
|
||||
|
||||
result = m_TextString3->Initialize(m_Direct3D->GetDevice(), m_Direct3D->GetDeviceContext(), screenWidth, screenHeight, 32, m_Font, testString3, screenWidth / 2 - m_Font->GetSentencePixelLength(testString3), screenHeight / 2 - m_Font->GetFontHeight(), 1.0f, 1.0f, 0.0f);
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Create and initialize the texture shader object.
|
||||
m_TextureShader = new TextureShaderClass;
|
||||
|
||||
@@ -167,6 +224,44 @@ bool ApplicationClass::Initialize(int screenWidth, int screenHeight, HWND hwnd)
|
||||
|
||||
void ApplicationClass::Shutdown()
|
||||
{
|
||||
// Release the text string objects.
|
||||
if (m_TextString3)
|
||||
{
|
||||
m_TextString3->Shutdown();
|
||||
delete m_TextString3;
|
||||
m_TextString3 = 0;
|
||||
}
|
||||
|
||||
if (m_TextString2)
|
||||
{
|
||||
m_TextString2->Shutdown();
|
||||
delete m_TextString2;
|
||||
m_TextString2 = 0;
|
||||
}
|
||||
|
||||
if (m_TextString1)
|
||||
{
|
||||
m_TextString1->Shutdown();
|
||||
delete m_TextString1;
|
||||
m_TextString1 = 0;
|
||||
}
|
||||
|
||||
// Release the font object.
|
||||
if (m_Font)
|
||||
{
|
||||
m_Font->Shutdown();
|
||||
delete m_Font;
|
||||
m_Font = 0;
|
||||
}
|
||||
|
||||
// Release the font shader object.
|
||||
if (m_FontShader)
|
||||
{
|
||||
m_FontShader->Shutdown();
|
||||
delete m_FontShader;
|
||||
m_FontShader = 0;
|
||||
}
|
||||
|
||||
// Release the timer object.
|
||||
if (m_Timer)
|
||||
{
|
||||
@@ -319,8 +414,39 @@ bool ApplicationClass::Render(float rotation, float x, float y, float z)
|
||||
m_Direct3D->GetProjectionMatrix(projectionMatrix);
|
||||
m_Direct3D->GetOrthoMatrix(orthoMatrix);
|
||||
|
||||
// Turn off the Z buffer to begin all 2D rendering.
|
||||
// Disable the Z buffer and enable alpha blending for 2D rendering.
|
||||
m_Direct3D->TurnZBufferOff();
|
||||
m_Direct3D->EnableAlphaBlending();
|
||||
|
||||
// Render the first text string using the font shader.
|
||||
m_TextString1->Render(m_Direct3D->GetDeviceContext());
|
||||
|
||||
result = m_FontShader->Render(m_Direct3D->GetDeviceContext(), m_TextString1->GetIndexCount(), worldMatrix, viewMatrix, orthoMatrix,
|
||||
m_Font->GetTexture(), m_TextString1->GetPixelColor());
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Render the second text string using the font shader.
|
||||
m_TextString2->Render(m_Direct3D->GetDeviceContext());
|
||||
|
||||
result = m_FontShader->Render(m_Direct3D->GetDeviceContext(), m_TextString2->GetIndexCount(), worldMatrix, viewMatrix, orthoMatrix,
|
||||
m_Font->GetTexture(), m_TextString2->GetPixelColor());
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Render the second text string using the font shader.
|
||||
m_TextString3->Render(m_Direct3D->GetDeviceContext());
|
||||
|
||||
result = m_FontShader->Render(m_Direct3D->GetDeviceContext(), m_TextString3->GetIndexCount(), worldMatrix, viewMatrix, orthoMatrix,
|
||||
m_Font->GetTexture(), m_TextString3->GetPixelColor());
|
||||
if (!result)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Put the sprite vertex and index buffers on the graphics pipeline to prepare them for drawing.
|
||||
result = m_Sprite->Render(m_Direct3D->GetDeviceContext());
|
||||
@@ -398,8 +524,9 @@ bool ApplicationClass::Render(float rotation, float x, float y, float z)
|
||||
result = m_MultiTextureShader->Render(m_Direct3D->GetDeviceContext(), m_Model->GetIndexCount(), worldMatrix, viewMatrix, projectionMatrix,
|
||||
m_Model->GetTexture(0), m_Model->GetTexture(1));
|
||||
|
||||
// Turn the Z buffer back on now that all 2D rendering has completed.
|
||||
// Enable the Z buffer and disable alpha blending now that 2D rendering is complete.
|
||||
m_Direct3D->TurnZBufferOn();
|
||||
m_Direct3D->DisableAlphaBlending();
|
||||
|
||||
// Present the rendered scene to the screen.
|
||||
m_Direct3D->EndScene();
|
||||
|
||||
Reference in New Issue
Block a user