Add GEVulkanMeshSceneNode and GEVulkanAnimatedMeshSceneNode
This commit is contained in:
parent
fc7413800c
commit
5853d618a6
@ -28,6 +28,7 @@ set(GE_SOURCES
|
||||
src/ge_dx9_texture.cpp
|
||||
src/ge_vma.cpp
|
||||
src/ge_vulkan_2d_renderer.cpp
|
||||
src/ge_vulkan_animated_mesh_scene_node.cpp
|
||||
src/ge_vulkan_camera_scene_node.cpp
|
||||
src/ge_vulkan_command_loader.cpp
|
||||
src/ge_vulkan_depth_texture.cpp
|
||||
@ -35,6 +36,7 @@ set(GE_SOURCES
|
||||
src/ge_vulkan_dynamic_buffer.cpp
|
||||
src/ge_vulkan_features.cpp
|
||||
src/ge_vulkan_mesh_cache.cpp
|
||||
src/ge_vulkan_mesh_scene_node.cpp
|
||||
src/ge_vulkan_scene_manager.cpp
|
||||
src/ge_vulkan_shader_manager.cpp
|
||||
src/ge_vulkan_texture.cpp
|
||||
|
@ -23,6 +23,21 @@ public:
|
||||
const irr::core::vector3df& position = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& lookat = irr::core::vector3df(0, 0, 100),
|
||||
irr::s32 id = -1, bool make_active = true);
|
||||
// ------------------------------------------------------------------------
|
||||
virtual irr::scene::IAnimatedMeshSceneNode* addAnimatedMeshSceneNode(
|
||||
irr::scene::IAnimatedMesh* mesh, irr::scene::ISceneNode* parent = NULL,
|
||||
irr::s32 id = -1,
|
||||
const irr::core::vector3df& position = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& rotation = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& scale = irr::core::vector3df(1.0f, 1.0f, 1.0f),
|
||||
bool alsoAddIfMeshPointerZero = false);
|
||||
// ------------------------------------------------------------------------
|
||||
virtual irr::scene::IMeshSceneNode* addMeshSceneNode(irr::scene::IMesh* mesh,
|
||||
irr::scene::ISceneNode* parent = NULL, irr::s32 id = -1,
|
||||
const irr::core::vector3df& position = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& rotation = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& scale = irr::core::vector3df(1.0f, 1.0f, 1.0f),
|
||||
bool alsoAddIfMeshPointerZero = false);
|
||||
}; // GEVulkanSceneManager
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,23 @@
|
||||
#include "ge_vulkan_animated_mesh_scene_node.hpp"
|
||||
|
||||
#include "ge_spm.hpp"
|
||||
|
||||
namespace GE
|
||||
{
|
||||
GEVulkanAnimatedMeshSceneNode::GEVulkanAnimatedMeshSceneNode(irr::scene::IAnimatedMesh* mesh,
|
||||
irr::scene::ISceneNode* parent, irr::scene::ISceneManager* mgr, irr::s32 id,
|
||||
const irr::core::vector3df& position,
|
||||
const irr::core::vector3df& rotation,
|
||||
const irr::core::vector3df& scale)
|
||||
: irr::scene::CAnimatedMeshSceneNode(mesh, parent, mgr, id, position,
|
||||
rotation, scale)
|
||||
{
|
||||
} // GEVulkanAnimatedMeshSceneNode
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
GESPM* GEVulkanAnimatedMeshSceneNode::getSPM() const
|
||||
{
|
||||
return static_cast<GESPM*>(Mesh);
|
||||
} // getSPM
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
#ifndef HEADER_GE_VULKAN_ANIMATED_MESH_SCENE_NODE_HPP
|
||||
#define HEADER_GE_VULKAN_ANIMATED_MESH_SCENE_NODE_HPP
|
||||
|
||||
#include "../source/Irrlicht/CAnimatedMeshSceneNode.h"
|
||||
|
||||
namespace GE
|
||||
{
|
||||
class GESPM;
|
||||
|
||||
class GEVulkanAnimatedMeshSceneNode : public irr::scene::CAnimatedMeshSceneNode
|
||||
{
|
||||
public:
|
||||
// ------------------------------------------------------------------------
|
||||
GEVulkanAnimatedMeshSceneNode(irr::scene::IAnimatedMesh* mesh,
|
||||
irr::scene::ISceneNode* parent, irr::scene::ISceneManager* mgr, irr::s32 id,
|
||||
const irr::core::vector3df& position = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& rotation = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& scale = irr::core::vector3df(1.0f, 1.0f, 1.0f));
|
||||
// ------------------------------------------------------------------------
|
||||
GESPM* getSPM() const;
|
||||
}; // GEVulkanAnimatedMeshSceneNode
|
||||
|
||||
}
|
||||
|
||||
#endif
|
23
lib/graphics_engine/src/ge_vulkan_mesh_scene_node.cpp
Normal file
23
lib/graphics_engine/src/ge_vulkan_mesh_scene_node.cpp
Normal file
@ -0,0 +1,23 @@
|
||||
#include "ge_vulkan_mesh_scene_node.hpp"
|
||||
|
||||
#include "ge_spm.hpp"
|
||||
|
||||
namespace GE
|
||||
{
|
||||
GEVulkanMeshSceneNode::GEVulkanMeshSceneNode(irr::scene::IMesh* mesh,
|
||||
irr::scene::ISceneNode* parent, irr::scene::ISceneManager* mgr, irr::s32 id,
|
||||
const irr::core::vector3df& position,
|
||||
const irr::core::vector3df& rotation,
|
||||
const irr::core::vector3df& scale)
|
||||
: irr::scene::CMeshSceneNode(mesh, parent, mgr, id, position, rotation,
|
||||
scale)
|
||||
{
|
||||
} // GEVulkanMeshSceneNode
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
GESPM* GEVulkanMeshSceneNode::getSPM() const
|
||||
{
|
||||
return static_cast<GESPM*>(Mesh);
|
||||
} // getSPM
|
||||
|
||||
}
|
25
lib/graphics_engine/src/ge_vulkan_mesh_scene_node.hpp
Normal file
25
lib/graphics_engine/src/ge_vulkan_mesh_scene_node.hpp
Normal file
@ -0,0 +1,25 @@
|
||||
#ifndef HEADER_GE_VULKAN_MESH_SCENE_NODE_HPP
|
||||
#define HEADER_GE_VULKAN_MESH_SCENE_NODE_HPP
|
||||
|
||||
#include "../source/Irrlicht/CMeshSceneNode.h"
|
||||
|
||||
namespace GE
|
||||
{
|
||||
class GESPM;
|
||||
|
||||
class GEVulkanMeshSceneNode : public irr::scene::CMeshSceneNode
|
||||
{
|
||||
public:
|
||||
// ------------------------------------------------------------------------
|
||||
GEVulkanMeshSceneNode(irr::scene::IMesh* mesh,
|
||||
irr::scene::ISceneNode* parent, irr::scene::ISceneManager* mgr, irr::s32 id,
|
||||
const irr::core::vector3df& position = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& rotation = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& scale = irr::core::vector3df(1.0f, 1.0f, 1.0f));
|
||||
// ------------------------------------------------------------------------
|
||||
GESPM* getSPM() const;
|
||||
}; // GEVulkanMeshSceneNode
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,7 +1,10 @@
|
||||
#include "ge_vulkan_scene_manager.hpp"
|
||||
|
||||
#include "ge_spm.hpp"
|
||||
#include "ge_vulkan_animated_mesh_scene_node.hpp"
|
||||
#include "ge_vulkan_camera_scene_node.hpp"
|
||||
#include "ge_vulkan_mesh_cache.hpp"
|
||||
#include "ge_vulkan_mesh_scene_node.hpp"
|
||||
|
||||
namespace GE
|
||||
{
|
||||
@ -42,4 +45,49 @@ irr::scene::ICameraSceneNode* GEVulkanSceneManager::addCameraSceneNode(
|
||||
return node;
|
||||
} // addCameraSceneNode
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
irr::scene::IAnimatedMeshSceneNode* GEVulkanSceneManager::addAnimatedMeshSceneNode(
|
||||
irr::scene::IAnimatedMesh* mesh, irr::scene::ISceneNode* parent,
|
||||
irr::s32 id,
|
||||
const irr::core::vector3df& position,
|
||||
const irr::core::vector3df& rotation,
|
||||
const irr::core::vector3df& scale,
|
||||
bool alsoAddIfMeshPointerZero)
|
||||
{
|
||||
if (!alsoAddIfMeshPointerZero && (!mesh || !dynamic_cast<GESPM*>(mesh)))
|
||||
return NULL;
|
||||
|
||||
if (!parent)
|
||||
parent = this;
|
||||
|
||||
irr::scene::IAnimatedMeshSceneNode* node =
|
||||
new GEVulkanAnimatedMeshSceneNode(mesh, parent, this, id, position,
|
||||
rotation, scale);
|
||||
node->drop();
|
||||
node->setMesh(mesh);
|
||||
return node;
|
||||
} // addAnimatedMeshSceneNode
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
irr::scene::IMeshSceneNode* GEVulkanSceneManager::addMeshSceneNode(
|
||||
irr::scene::IMesh* mesh,
|
||||
irr::scene::ISceneNode* parent, irr::s32 id,
|
||||
const irr::core::vector3df& position,
|
||||
const irr::core::vector3df& rotation,
|
||||
const irr::core::vector3df& scale,
|
||||
bool alsoAddIfMeshPointerZero)
|
||||
{
|
||||
if (!alsoAddIfMeshPointerZero && (!mesh || !dynamic_cast<GESPM*>(mesh)))
|
||||
return NULL;
|
||||
|
||||
if (!parent)
|
||||
parent = this;
|
||||
|
||||
irr::scene::IMeshSceneNode* node =
|
||||
new GEVulkanMeshSceneNode(mesh, parent, this, id, position, rotation,
|
||||
scale);
|
||||
node->drop();
|
||||
return node;
|
||||
} // addMeshSceneNode
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user