修复gizmo用错材质的问题
This commit is contained in:
@@ -35,7 +35,7 @@ enum class GizmoShape:uint
|
||||
bool InitGizmoResource(RenderFramework *);
|
||||
void FreeGizmoResource();
|
||||
|
||||
MaterialInstance *GetGizmoMI(const GizmoColor &);
|
||||
MaterialInstance *GetGizmoMI3D(const GizmoColor &);
|
||||
ComponentDataPtr GetGizmoMeshCDP(const GizmoShape &shape);
|
||||
|
||||
SceneNode *GetGizmoMoveNode();
|
||||
|
@@ -84,7 +84,7 @@ namespace
|
||||
CreateComponentInfo cci(this);
|
||||
|
||||
sphere=render_framework->CreateComponent<MeshComponent>(&cci,SpherePtr); //中心球
|
||||
sphere->SetOverrideMaterial(GetGizmoMI(GizmoColor::White)); //白色
|
||||
sphere->SetOverrideMaterial(GetGizmoMI3D(GizmoColor::White)); //白色
|
||||
|
||||
{
|
||||
Transform tm;
|
||||
@@ -97,7 +97,7 @@ namespace
|
||||
|
||||
{
|
||||
gma=axis+size_t(AXIS::Z);
|
||||
mi=GetGizmoMI(GizmoColor::Blue);
|
||||
mi=GetGizmoMI3D(GizmoColor::Blue);
|
||||
|
||||
tm.SetScale(cylinder_scale);
|
||||
tm.SetTranslation(0,0,GIZMO_CYLINDER_OFFSET);
|
||||
@@ -120,7 +120,7 @@ namespace
|
||||
|
||||
{
|
||||
gma=axis+size_t(AXIS::X);
|
||||
mi=GetGizmoMI(GizmoColor::Red);
|
||||
mi=GetGizmoMI3D(GizmoColor::Red);
|
||||
|
||||
tm.SetScale(cylinder_scale);
|
||||
tm.SetRotation(AxisVector::Y,90);
|
||||
@@ -144,7 +144,7 @@ namespace
|
||||
|
||||
{
|
||||
gma=axis+size_t(AXIS::Y);
|
||||
mi=GetGizmoMI(GizmoColor::Green);
|
||||
mi=GetGizmoMI3D(GizmoColor::Green);
|
||||
|
||||
tm.SetScale(cylinder_scale);
|
||||
tm.SetRotation(AxisVector::X,-90);
|
||||
|
@@ -28,15 +28,15 @@ namespace
|
||||
{
|
||||
static RenderFramework *render_framework=nullptr;
|
||||
static RenderResource * gizmo_rr=nullptr;
|
||||
static MaterialInstance *gizmo_mi[size_t(GizmoColor::RANGE_SIZE)]{};
|
||||
|
||||
struct GizmoResource
|
||||
{
|
||||
Material * mtl;
|
||||
Pipeline * pipeline;
|
||||
VertexDataManager * vdm;
|
||||
Material * mtl;
|
||||
MaterialInstance * mi[size_t(GizmoColor::RANGE_SIZE)];
|
||||
Pipeline * pipeline;
|
||||
VertexDataManager * vdm;
|
||||
|
||||
PrimitiveCreater * prim_creater;
|
||||
PrimitiveCreater * prim_creater;
|
||||
};
|
||||
|
||||
static GizmoResource gizmo_line{};
|
||||
@@ -56,7 +56,7 @@ namespace
|
||||
{
|
||||
prim=p;
|
||||
|
||||
mesh=CreateMesh(prim,gizmo_mi[0],gizmo_triangle.pipeline);
|
||||
mesh=CreateMesh(prim,gizmo_triangle.mi[0],gizmo_triangle.pipeline);
|
||||
mcd=new MeshComponentData(mesh);
|
||||
cdp=mcd;
|
||||
}
|
||||
@@ -90,9 +90,9 @@ namespace
|
||||
{
|
||||
color=GetColor4f(gizmo_color[i],1.0);
|
||||
|
||||
gizmo_mi[i]=gizmo_rr->CreateMaterialInstance(gr->mtl,nullptr,&color);
|
||||
gr->mi[i]=gizmo_rr->CreateMaterialInstance(gr->mtl,nullptr,&color);
|
||||
|
||||
if(!gizmo_mi[i])
|
||||
if(!gr->mi[i])
|
||||
return(false);
|
||||
}
|
||||
|
||||
@@ -324,11 +324,11 @@ void FreeGizmoResource()
|
||||
SAFE_CLEAR(gizmo_line.vdm);
|
||||
}
|
||||
|
||||
MaterialInstance *GetGizmoMI(const GizmoColor &color)
|
||||
MaterialInstance *GetGizmoMI3D(const GizmoColor &color)
|
||||
{
|
||||
RANGE_CHECK_RETURN_NULLPTR(color)
|
||||
|
||||
return gizmo_mi[size_t(color)];
|
||||
return gizmo_triangle.mi[size_t(color)];
|
||||
}
|
||||
|
||||
ComponentDataPtr GetGizmoMeshCDP(const GizmoShape &shape)
|
||||
|
@@ -87,7 +87,8 @@ namespace
|
||||
VkDebugUtilsMessageTypeFlagsEXT messageType,
|
||||
const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData)
|
||||
{
|
||||
if(messageSeverity&VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) std::cerr<<"[ERROR] "; else
|
||||
if(messageSeverity&VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT)
|
||||
std::cerr<<"[ERROR] "; else
|
||||
if(messageSeverity&VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) std::cerr<<"[WARNING] "; else
|
||||
if(messageSeverity&VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT) std::cerr<<"[INFO] "; else
|
||||
if(messageSeverity&VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) std::cerr<<"[VERBOSE] "; else
|
||||
@@ -147,7 +148,8 @@ namespace
|
||||
{
|
||||
const char *obj_type_name=GetVkDebugReportObjectTypename(objType);
|
||||
|
||||
if(msgFlags&VK_DEBUG_REPORT_ERROR_BIT_EXT) std::cerr<<"[ERROR:"; else
|
||||
if(msgFlags&VK_DEBUG_REPORT_ERROR_BIT_EXT)
|
||||
std::cerr<<"[ERROR:"; else
|
||||
if(msgFlags&VK_DEBUG_REPORT_WARNING_BIT_EXT) std::cerr<<"[WARNING:"; else
|
||||
if(msgFlags&VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT)std::cerr<<"[PERFORMANCE WARNING:"; else
|
||||
if(msgFlags&VK_DEBUG_REPORT_INFORMATION_BIT_EXT) std::cerr<<"[INFO:"; else
|
||||
|
Reference in New Issue
Block a user