added a test that it's zero2one coordinate system at second_triangle.cpp
This commit is contained in:
@@ -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:
|
||||||
@@ -42,7 +44,11 @@ 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);
|
||||||
|
|
||||||
|
@@ -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)
|
||||||
|
@@ -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);}";
|
||||||
|
Reference in New Issue
Block a user