added a test that it's zero2one coordinate system at second_triangle.cpp

This commit is contained in:
2023-03-22 17:56:36 +08:00
parent 57b480754c
commit 8af96ed4a5
4 changed files with 24 additions and 11 deletions

View File

@@ -15,11 +15,11 @@ constexpr uint32_t SCREEN_HEIGHT=720;
constexpr uint32_t VERTEX_COUNT=3; constexpr uint32_t VERTEX_COUNT=3;
constexpr float position_data[VERTEX_COUNT][2]= static float position_data[VERTEX_COUNT][2]=
{ {
{SCREEN_WIDTH*0.5, SCREEN_HEIGHT*0.25}, {0.5, 0.25},
{SCREEN_WIDTH*0.75, SCREEN_HEIGHT*0.75}, {0.75, 0.75},
{SCREEN_WIDTH*0.25, SCREEN_HEIGHT*0.75} {0.25, 0.75}
}; };
constexpr float color_data[VERTEX_COUNT][4]= constexpr float color_data[VERTEX_COUNT][4]=
@@ -29,6 +29,8 @@ constexpr float color_data[VERTEX_COUNT][4]=
{0,0,1,1} {0,0,1,1}
}; };
#define USE_ZERO2ONE_COORD //使用左上角0,0右下角1,1的坐标系
class TestApp:public VulkanApplicationFramework class TestApp:public VulkanApplicationFramework
{ {
private: private:
@@ -41,8 +43,12 @@ private:
private: private:
bool InitMaterial() bool InitMaterial()
{ {
#ifdef USE_ZERO2ONE_COORD
MaterialCreateInfo *mci=mtl::CreateVertexColor2D(CoordinateSystem2D::ZeroToOne);
#else
MaterialCreateInfo *mci=mtl::CreateVertexColor2D(CoordinateSystem2D::Ortho); MaterialCreateInfo *mci=mtl::CreateVertexColor2D(CoordinateSystem2D::Ortho);
#endif//USE_ZERO2ONE_COORD
//material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/VertexColor2D")); //material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/VertexColor2D"));
@@ -66,6 +72,16 @@ private:
Primitive *primitive=db->CreatePrimitive(VERTEX_COUNT); Primitive *primitive=db->CreatePrimitive(VERTEX_COUNT);
if(!primitive)return(false); if(!primitive)return(false);
#ifndef USE_ZERO2ONE_COORD //使用ortho坐标系
for(uint i=0;i<VERTEX_COUNT;i++)
{
position_data[i][0]*=SCREEN_WIDTH;
position_data[i][1]*=SCREEN_HEIGHT;
}
#endif//USE_ZERO2ONE_COORD
if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data )))return(false); if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data )))return(false);
if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data )))return(false); if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data )))return(false);

View File

@@ -7,7 +7,7 @@ namespace hgl
{ {
namespace graph namespace graph
{ {
/** /**
* MVP矩阵 * MVP矩阵
*/ */
struct MVPMatrix struct MVPMatrix

View File

@@ -78,7 +78,6 @@ MaterialDescriptorManager::MaterialDescriptorManager(const UTF8String &name,cons
dsl_ci[i].pBindings=nullptr; dsl_ci[i].pBindings=nullptr;
sd_count+=sds_array[i].count; sd_count+=sds_array[i].count;
} }
if(sd_count<=0) if(sd_count<=0)
@@ -116,7 +115,7 @@ MaterialDescriptorManager::MaterialDescriptorManager(const UTF8String &name,cons
++dsl_bind[i]; ++dsl_bind[i];
++sp; ++sp;
} }
} }
} }
@@ -141,4 +140,4 @@ const int MaterialDescriptorManager::GetBinding(const DescriptorSetType &set_typ
return(binding_map[size_t(set_type)][size_t(desc_type)].Get(name,result)?result:-1); return(binding_map[size_t(set_type)][size_t(desc_type)].Get(name,result)?result:-1);
} }
VK_NAMESPACE_END VK_NAMESPACE_END

View File

@@ -22,8 +22,6 @@ MaterialCreateInfo *CreateVertexColor2D(const CoordinateSystem2D &cs)
if(cs==CoordinateSystem2D::Ortho) if(cs==CoordinateSystem2D::Ortho)
{ {
// mci->AddStruct(GlobalDescriptor::ViewportInfo);
mci->AddUBO(VK_SHADER_STAGE_VERTEX_BIT,GlobalDescriptor::ViewportInfo); mci->AddUBO(VK_SHADER_STAGE_VERTEX_BIT,GlobalDescriptor::ViewportInfo);
sfGetPosition="vec4 GetPosition(){return viewport.ortho_matrix*vec4(Position,0,1);}"; sfGetPosition="vec4 GetPosition(){return viewport.ortho_matrix*vec4(Position,0,1);}";