Mikemon/assets/shader/font_vertex_shader.hlsl
mikeb 1f91eb9cf1 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
2021-07-03 17:31:05 +00:00

56 lines
1.1 KiB
HLSL

struct VertexShaderInput {
// Per Vertex
float4 pos : VERTEX_POSITION;
float2 uv : UV_VERTEX;
uint vid : SV_VertexID;
// Per Instance
float4 pos_size : INSTANCE_POSITION_SIZE;
uint tile_type : TILE_TYPE;
float4 uv0uv1 : UV_INSTANCE;
};
struct VertexShaderOutput {
float4 pos : SV_POSITION;
float4 uv0uv1 : COORDINATES;
uint tile_type : TILE_TYPE;
};
VertexShaderOutput main(VertexShaderInput input) {
VertexShaderOutput output;
float2 rect_pos = input.pos_size.xy;
float2 rect_size = input.pos_size.zw;
float3x3 coord_sys = {
2, 0, -1,
0, -2, 1,
0, 0, 1
};
input.pos_size.xy = mul(coord_sys, float3(input.pos_size.xy, 1)).xy;
float3x3 pos = {
1, 0, input.pos_size.x,
0, 1, input.pos_size.y,
0, 0, 1
};
float3x3 size = {
rect_size.x, 0, 0,
0, rect_size.y, 0,
0, 0, 1
};
output.pos.xy = mul(pos, mul(size, input.pos.xyz)).xy;
//output.pos.xy = mul(pos, input.pos.xyz).xy;
output.pos.zw = float2(0, 1);
output.uv0uv1.zw = float2(0, 0);
output.uv0uv1.xy = lerp(input.uv0uv1.xy, input.uv0uv1.zw, input.uv.xy);
output.tile_type = input.tile_type;
return output;
}