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 float position_data[VERTEX_COUNT][2]=
static float position_data[VERTEX_COUNT][2]=
{
{SCREEN_WIDTH*0.5, SCREEN_HEIGHT*0.25},
{SCREEN_WIDTH*0.75, SCREEN_HEIGHT*0.75},
{SCREEN_WIDTH*0.25, SCREEN_HEIGHT*0.75}
{0.5, 0.25},
{0.75, 0.75},
{0.25, 0.75}
};
constexpr float color_data[VERTEX_COUNT][4]=
@@ -29,6 +29,8 @@ constexpr float color_data[VERTEX_COUNT][4]=
{0,0,1,1}
};
#define USE_ZERO2ONE_COORD //使用左上角0,0右下角1,1的坐标系
class TestApp:public VulkanApplicationFramework
{
private:
@@ -42,7 +44,11 @@ private:
bool InitMaterial()
{
#ifdef USE_ZERO2ONE_COORD
MaterialCreateInfo *mci=mtl::CreateVertexColor2D(CoordinateSystem2D::ZeroToOne);
#else
MaterialCreateInfo *mci=mtl::CreateVertexColor2D(CoordinateSystem2D::Ortho);
#endif//USE_ZERO2ONE_COORD
//material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/VertexColor2D"));
@@ -66,6 +72,16 @@ private:
Primitive *primitive=db->CreatePrimitive(VERTEX_COUNT);
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::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data )))return(false);

View File

@@ -78,7 +78,6 @@ MaterialDescriptorManager::MaterialDescriptorManager(const UTF8String &name,cons
dsl_ci[i].pBindings=nullptr;
sd_count+=sds_array[i].count;
}
if(sd_count<=0)

View File

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