⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basictextapplication.cpp

📁 real-time(实时渲染技术DirectX)37-40
💻 CPP
字号:
/***************************************************************
* BasicTextApplication.cpp                                     *
*                                                              *
* This file contains the implementation of the                 *
* CBasicTextApplication class.	        					   *
* To compile correctly, this file must be linked with:         *
* kernel32.lib                                                 *
* user32.lib                                                   *
* d3dx8dt.lib                                                  *
* d3d8.lib                                                     *
*                                                              *
***************************************************************/

#include "BasicTextApplication.h"

#define STATIC_TEXT   "Static Buffer"
#define STATIC_LENGTH strlen(STATIC_TEXT)

CBasicTextApplication::CBasicTextApplication()
{
	m_pStaticTextBuffer = NULL;
}

CBasicTextApplication::~CBasicTextApplication()
{
}

BOOL CBasicTextApplication::PostInitialize()
{	
	if (FAILED(EasyCreateWindowed(m_hWnd, D3DDEVTYPE_HAL, 
					  D3DCREATE_HARDWARE_VERTEXPROCESSING)))
		return FALSE;	
	
	CreateTextObjects();

	return TRUE;
}

BOOL CBasicTextApplication::PreReset()
{
	DestroyTextObjects();
	return TRUE;
}

BOOL CBasicTextApplication::PostReset()
{
	CreateTextObjects();
	return TRUE;
}

void CBasicTextApplication::Render()
{
	m_Font.DrawText(0.0f, 50.0f, "12345\nThis is a test.", 0xffffaaaa);

	//Sine constrains the value from -1 to 1. 
	//Adding 1 changes the range from 0 to 2.
	//Dividing by 2 changes the range from 0 to 1.
	//Multiplying by the string length gives us a valid character.
	long Character = (long)((sin((float)GetTickCount() / 200.0f) + 1.0) / 
		                    2.0f * (float)STATIC_LENGTH);
	m_Font.DrawStaticText(m_pStaticTextBuffer, Character, 1);

	m_Font.DrawDebug(0, 100);
}

BOOL CBasicTextApplication::PreTerminate()
{
	DestroyTextObjects();
	return TRUE;
}


void CBasicTextApplication::CreateTextObjects()
{
	m_Font.CreateFont(m_pD3DDevice, "Arial", 20);

	m_pStaticTextBuffer = m_Font.CreateStaticText(0.0f, 0.0f,
		                                          STATIC_TEXT, 0xff00ff00);
}

void CBasicTextApplication::DestroyTextObjects()
{
	m_Font.DestroyStaticText(m_pStaticTextBuffer);
	m_Font.DestroyFont();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -