font_creator project for font loading;
init font_main + "stbtt_InitFont"; Lexend-Regular.ttf as normal font; git-svn-id: svn://ammerhai.com/home/mike/pokemon_repo@17 24008968-59e6-ed4c-a10b-0b2c954b24ab
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
#define STB_TRUETYPE_IMPLEMENTATION
|
||||
#include "stb_truetype.h"
|
||||
#include "load_entire_file.h"
|
||||
#include "log.h"
|
||||
|
||||
int main() {
|
||||
stbtt_fontinfo font_info;
|
||||
|
||||
String font_file = load_entire_file("../assets/fonts/Lexend-Regular.ttf");
|
||||
|
||||
if (!font_file.length) {
|
||||
log_error("Loading font file has failed.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!stbtt_InitFont(&font_info, (unsigned char*)font_file.data, 0)) {
|
||||
log_error("Init Font has failed.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
+40
-3
@@ -52,6 +52,12 @@ ID3D11VertexShader* vertex_shader;
|
||||
ID3DBlob* pixel_shader_code;
|
||||
ID3D11PixelShader* pixel_shader;
|
||||
|
||||
ID3DBlob* font_vertex_shader_code;
|
||||
ID3D11VertexShader* font_vertex_shader;
|
||||
|
||||
ID3DBlob* font_pixel_shader_code;
|
||||
ID3D11PixelShader* font_pixel_shader;
|
||||
|
||||
ID3D11Buffer* quad_instance_buffer;
|
||||
|
||||
int16 window_width;
|
||||
@@ -383,6 +389,8 @@ bool LoadShaders() {
|
||||
ID3DBlob* error_msgs = 0;
|
||||
HRESULT error_code = 0;
|
||||
|
||||
//Basic Shader
|
||||
|
||||
if (error_code = D3DCompileFromFile(L"../Assets/Shader/basic_vertex_shader.hlsl", 0, 0, "main", "vs_5_0", D3DCOMPILE_DEBUG | D3DCOMPILE_WARNINGS_ARE_ERRORS | D3DCOMPILE_OPTIMIZATION_LEVEL0 | D3DCOMPILE_SKIP_OPTIMIZATION, 0, &vertex_shader_code, &error_msgs)) {
|
||||
log("CompileFromFile has failed");
|
||||
if (error_msgs)
|
||||
@@ -406,6 +414,32 @@ bool LoadShaders() {
|
||||
log_error("CreatePixelShader has failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
//Font Shader
|
||||
|
||||
if (error_code = D3DCompileFromFile(L"../Assets/Shader/font_vertex_shader.hlsl", 0, 0, "main", "vs_5_0", D3DCOMPILE_DEBUG | D3DCOMPILE_WARNINGS_ARE_ERRORS | D3DCOMPILE_OPTIMIZATION_LEVEL0 | D3DCOMPILE_SKIP_OPTIMIZATION, 0, &font_vertex_shader_code, &error_msgs)) {
|
||||
log("CompileFromFile has failed");
|
||||
if (error_msgs)
|
||||
log_error("%.*s", error_msgs->GetBufferSize(), error_msgs->GetBufferPointer());
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (device->CreateVertexShader(font_vertex_shader_code->GetBufferPointer(), font_vertex_shader_code->GetBufferSize(), 0, &font_vertex_shader)) {
|
||||
log_error("CreateVertexShader has failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (error_code = D3DCompileFromFile(L"../Assets/Shader/font_pixel_shader.hlsl", 0, 0, "main", "ps_5_0", D3DCOMPILE_DEBUG | D3DCOMPILE_WARNINGS_ARE_ERRORS | D3DCOMPILE_OPTIMIZATION_LEVEL0, 0, &font_pixel_shader_code, &error_msgs)) {
|
||||
log("CompileFromFile has failed");
|
||||
if (error_msgs)
|
||||
log_error("%.*s", error_msgs->GetBufferSize(), error_msgs->GetBufferPointer());
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (device->CreatePixelShader(font_pixel_shader_code->GetBufferPointer(), font_pixel_shader_code->GetBufferSize(), 0, &font_pixel_shader)) {
|
||||
log_error("CreatePixelShader has failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -830,7 +864,7 @@ int main() {
|
||||
vertex_buffer,
|
||||
player_instance_buffer,
|
||||
};
|
||||
|
||||
|
||||
devicecontext->IASetVertexBuffers(0, sizeof(player_input_buffers) / sizeof(*player_input_buffers), player_input_buffers, input_strides, input_offsets);
|
||||
|
||||
devicecontext->PSSetShaderResources(0, 1, &player_texture);
|
||||
@@ -839,8 +873,11 @@ int main() {
|
||||
//Moving Quad
|
||||
//quad_pos += {0.001f, 0.001f};
|
||||
|
||||
render_quad(quad_pos, quad_size, quad_texture, { 0, 0 }, { 1, 1 });
|
||||
render_quad({ 0.1, 0.2 }, { 0.01, 0.01 }, quad_texture, { 0, 0 }, { 1, 1 });
|
||||
devicecontext->VSSetShader(font_vertex_shader, 0, 0);
|
||||
devicecontext->PSSetShader(font_pixel_shader, 0, 0);
|
||||
|
||||
render_quad(quad_pos, quad_size, quad_texture, { 0, 0 }, { 0.5, 1 });
|
||||
render_quad({ 0.1, 0.2 }, { 0.01, 0.01 }, quad_texture, { 0, 0 }, { 1, 1});
|
||||
//
|
||||
|
||||
swap_chain->Present(1, 0);
|
||||
|
||||
+5082
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user