Skip to content

Commit 00ee7de

Browse files
committed
v4.3 updates, plugins c3dmodel viewer vulkan and opengl changes
1 parent d892863 commit 00ee7de

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+220
-183
lines changed

applications/_plugins/c3dmodel_viewers/gltf_opengl/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ target_include_directories(ModelViewer_OpenGL PUBLIC
2525
${PROJECT_SOURCE_DIR}/applications/_plugins/common
2626
${PROJECT_SOURCE_DIR}/applications/_libs/cmp_meshoptimizer
2727
${PROJECT_SOURCE_DIR}/applications/_plugins/common/qtimgui
28+
${PROJECT_SOURCE_DIR}/external/imgui
2829
${PROJECT_SOURCE_DIR}/applications/_libs/cmp_math
30+
${PROJECT_SOURCE_DIR}/../common/lib/ext/imgui
2931
)
3032

3133
target_link_libraries(ModelViewer_OpenGL PRIVATE

applications/_plugins/c3dmodel_viewers/gltf_opengl/gltf_ogldevice.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ void glTF_OGLDevice::paintGL() {
406406
static double RenderingTime;
407407
m_ImGuiRenderer.newFrame();
408408
{
409-
ImGui::Begin("Stats", NULL, ImGuiWindowFlags_ShowBorders);
409+
ImGui::Begin("Stats"); //, NULL, ImGuiWindowFlags_ShowBorders);
410410
m_imgui_win_size = ImGui::GetWindowSize();
411411
m_imgui_win_pos = ImGui::GetWindowPos();
412412

applications/_plugins/c3dmodel_viewers/gltf_opengl/gltf_ogldevice.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
#include <QApplication>
4141

4242
#include <imgui_opengl.h>
43-
#include "imgui/imgui.h"
43+
#include "imgui.h"
4444

4545
#include "modeldata.h"
4646
#include "misc.h"

applications/_plugins/c3dmodel_viewers/vulkan/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ target_include_directories(ModelViewer_Vulkan PUBLIC
4545
${PROJECT_SOURCE_DIR}/applications/_libs/gpu_decode
4646
${PROJECT_SOURCE_DIR}/applications/_plugins/c3dmodel_viewers/vulkan/util
4747
${PROJECT_SOURCE_DIR}/applications/_plugins/c3dmodel_viewers/gltf_dx12_ex/dx12util
48+
${PROJECT_SOURCE_DIR}/../common/lib/ext/imgui
4849
${PROJECT_SOURCE_DIR}/../common/lib/ext/glm
4950
${Vulkan_INCLUDE_DIRS}
5051
)
@@ -57,11 +58,11 @@ target_link_libraries(ModelViewer_Vulkan
5758
ExtGlslang
5859
ExtQt5Widgets
5960

61+
CMP_Imgui
6062
CMP_Compressonator
6163
CMP_Framework
6264
CMP_GpuDecode
6365
CMP_GUI_Gltf
64-
CMP_Imgui
6566
CMP_Common # CModel Data
6667
)
6768

applications/_plugins/c3dmodel_viewers/vulkan/util/camera.cpp renamed to applications/_plugins/c3dmodel_viewers/vulkan/util/cmp_cameravk.cpp

+9-5
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1818
// THE SOFTWARE.
1919

20-
#include "camera.h"
20+
#include "cmp_cameravk.h"
2121

2222
#include <glm/mat4x4.hpp>
2323
#include <glm/gtc/matrix_transform.hpp>
@@ -30,7 +30,8 @@
3030
// OnCreate
3131
//
3232
//--------------------------------------------------------------------------------------
33-
void Camera::SetFov(float fovV, unsigned int width, unsigned int height) {
33+
void CMP_Camera::SetFov(float fovV, unsigned int width, unsigned int height)
34+
{
3435
m_aspectRatio = width * 1.f / height;
3536

3637
m_fovV = fovV;
@@ -54,7 +55,8 @@ void Camera::SetFov(float fovV, unsigned int width, unsigned int height) {
5455
// LookAt
5556
//
5657
//--------------------------------------------------------------------------------------
57-
void Camera::LookAt(glm::vec4 eyePos, glm::vec4 lookAt) {
58+
void CMP_Camera::LookAt(glm::vec4 eyePos, glm::vec4 lookAt)
59+
{
5860
m_eyePos = eyePos;
5961
glm::vec4 up = glm::vec4(0, 1, 0, 0);
6062
m_View = glm::lookAtRH(glm::vec3(eyePos), glm::vec3(lookAt), glm::vec3(up));
@@ -65,7 +67,8 @@ void Camera::LookAt(glm::vec4 eyePos, glm::vec4 lookAt) {
6567
// UpdateCamera
6668
//
6769
//--------------------------------------------------------------------------------------
68-
void Camera::UpdateCameraWASD(float roll, float pitch, const bool keyDown[256], double deltaTime) {
70+
void CMP_Camera::UpdateCameraWASD(float roll, float pitch, const bool keyDown[256], double deltaTime)
71+
{
6972
float speed = 0.0003f * (keyDown[VK_SHIFT] ? 25.f * (float)deltaTime : 5.f * (float)deltaTime);
7073

7174
float eyeDir[3] = { 0,0,0 };
@@ -101,7 +104,8 @@ void Camera::UpdateCameraWASD(float roll, float pitch, const bool keyDown[256],
101104
LookAt(m_eyePos, at);
102105
}
103106

104-
void Camera::UpdateCamera(float roll, float pitch, float distance) {
107+
void CMP_Camera::UpdateCamera(float roll, float pitch, float distance)
108+
{
105109
m_eyePos = glm::vec4(distance * sinf(roll) * cosf(pitch), distance * sinf(pitch), distance * cosf(roll) * cosf(pitch), 0);
106110
glm::vec4 at(0, 0, 0, 0);
107111
LookAt(m_eyePos, at);

applications/_plugins/c3dmodel_viewers/vulkan/util/camera.h renamed to applications/_plugins/c3dmodel_viewers/vulkan/util/cmp_cameravk.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222

2323
// typical camera class
2424

25-
class Camera {
25+
class CMP_Camera
26+
{
2627
public:
2728
void LookAt(glm::vec4 eyePos, glm::vec4 lookAt);
2829
void SetFov(float fov, unsigned int width, unsigned int height);

applications/_plugins/c3dmodel_viewers/vulkan/util/commandlistringvk.cpp renamed to applications/_plugins/c3dmodel_viewers/vulkan/util/cmp_commandlistringvk.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,17 @@
1818
// THE SOFTWARE.
1919

2020

21-
#include "commandlistringvk.h"
21+
#include "cmp_commandlistringvk.h"
2222

23-
#include "devicevk.h"
23+
#include "cmp_devicevk.h"
2424

2525
//--------------------------------------------------------------------------------------
2626
//
2727
// OnCreate
2828
//
2929
//--------------------------------------------------------------------------------------
30-
void CommandListRingVK::OnCreate(DeviceVK *pDevice, std::uint32_t numberOfBackBuffers, std::uint32_t memTotalSize) {
30+
void CommandListRingVK::OnCreate(CMP_DeviceVK* pDevice, std::uint32_t numberOfBackBuffers, std::uint32_t memTotalSize)
31+
{
3132
VkResult res;
3233
VkDevice Device = pDevice->GetDevice();
3334
m_pDevice = pDevice;

applications/_plugins/c3dmodel_viewers/vulkan/util/commandlistringvk.h renamed to applications/_plugins/c3dmodel_viewers/vulkan/util/cmp_commandlistringvk.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@
1818
// THE SOFTWARE.
1919

2020
#pragma once
21-
#include "ring.h"
21+
#include "cmp_ringvk.h"
2222

2323
#include <vulkan/vulkan.h>
2424

2525
#include <cstdint>
2626

2727

2828
// Forward Declaration
29-
class DeviceVK;
29+
class CMP_DeviceVK;
3030

3131
// This class, on creation allocates a number of command lists. Using a ring buffer
3232
// these commandLists are recycled when they are no longer used by the GPU. See the
@@ -36,13 +36,13 @@ class CommandListRingVK {
3636
std::uint32_t m_memTotalSize;
3737
RingWithTabs m_mem;
3838

39-
DeviceVK *m_pDevice;
39+
CMP_DeviceVK* m_pDevice;
4040

4141
VkCommandPool m_commandPool;
4242
VkCommandBuffer *m_pCommandBuffer;
4343

4444
public:
45-
void OnCreate(DeviceVK *pDevice, std::uint32_t numberOfBackBuffers, std::uint32_t memTotalSize);
45+
void OnCreate(CMP_DeviceVK* pDevice, std::uint32_t numberOfBackBuffers, std::uint32_t memTotalSize);
4646
void OnDestroy();
4747
VkCommandBuffer *GetNewCommandList();
4848
void OnBeginFrame();

applications/_plugins/c3dmodel_viewers/vulkan/util/devicevk.cpp renamed to applications/_plugins/c3dmodel_viewers/vulkan/util/cmp_devicevk.cpp

+9-5
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,26 @@
2020
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2121
// THE SOFTWARE.
2222
//
23-
#include "devicevk.h"
23+
#include "cmp_devicevk.h"
2424

2525
#include <vulkan/vulkan.h>
2626

2727
#include <vector>
2828
#include <cassert>
2929

3030

31-
DeviceVK::DeviceVK() {
31+
CMP_DeviceVK::CMP_DeviceVK()
32+
{
3233
}
3334

3435

35-
DeviceVK::~DeviceVK() {
36+
CMP_DeviceVK::~CMP_DeviceVK()
37+
{
3638
}
3739

3840

39-
void DeviceVK::OnCreate(VkInstance instance, void* hWnd) {
41+
void CMP_DeviceVK::OnCreate(VkInstance instance, void* hWnd)
42+
{
4043
VkResult res;
4144

4245
uint32_t gpu_count = 1;
@@ -145,7 +148,8 @@ void DeviceVK::OnCreate(VkInstance instance, void* hWnd) {
145148
}
146149

147150

148-
void DeviceVK::OnDestroy() {
151+
void CMP_DeviceVK::OnDestroy()
152+
{
149153

150154
}
151155

applications/_plugins/c3dmodel_viewers/vulkan/util/devicevk.h renamed to applications/_plugins/c3dmodel_viewers/vulkan/util/cmp_devicevk.h

+6-4
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,15 @@
2424

2525
#include <vulkan/vulkan.h>
2626

27-
class DeviceVK {
27+
class CMP_DeviceVK
28+
{
2829
public:
29-
DeviceVK();
30-
~DeviceVK();
30+
CMP_DeviceVK();
31+
~CMP_DeviceVK();
3132
void OnCreate(VkInstance instance, void* hWnd);
3233
void OnDestroy();
33-
VkDevice GetDevice() {
34+
VkDevice GetDevice()
35+
{
3436
return m_device;
3537
}
3638
VkQueue GetGraphicsQueue() {

applications/_plugins/c3dmodel_viewers/vulkan/util/dynamicbufferringvk.cpp renamed to applications/_plugins/c3dmodel_viewers/vulkan/util/cmp_dynamicbufferringvk.cpp

+15-8
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@
1717
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1818
// THE SOFTWARE.
1919

20-
#include "dynamicbufferringvk.h"
20+
#include "cmp_dynamicbufferringvk.h"
2121
#include "misc.h"
2222

2323
//--------------------------------------------------------------------------------------
2424
//
2525
// OnCreate
2626
//
2727
//--------------------------------------------------------------------------------------
28-
void DynamicBufferRingVK::OnCreate(DeviceVK* pDevice, std::uint32_t numberOfBackBuffers, std::uint32_t memTotalSize) {
28+
void CMP_DynamicBufferRingVK::OnCreate(CMP_DeviceVK* pDevice, std::uint32_t numberOfBackBuffers, std::uint32_t memTotalSize)
29+
{
2930
VkResult res;
3031
m_pDevice = pDevice;
3132

@@ -78,7 +79,8 @@ void DynamicBufferRingVK::OnCreate(DeviceVK* pDevice, std::uint32_t numberOfBack
7879
// OnDestroy
7980
//
8081
//--------------------------------------------------------------------------------------
81-
void DynamicBufferRingVK::OnDestroy() {
82+
void CMP_DynamicBufferRingVK::OnDestroy()
83+
{
8284
vkUnmapMemory(m_pDevice->GetDevice(), m_deviceMemory);
8385
vkFreeMemory(m_pDevice->GetDevice(), m_deviceMemory, NULL);
8486
vkDestroyBuffer(m_pDevice->GetDevice(), m_buffer, NULL);
@@ -90,7 +92,8 @@ void DynamicBufferRingVK::OnDestroy() {
9092
// AllocConstantBuffer
9193
//
9294
//--------------------------------------------------------------------------------------
93-
bool DynamicBufferRingVK::AllocConstantBuffer(std::uint32_t size, void **pData, VkDescriptorBufferInfo *pOut) {
95+
bool CMP_DynamicBufferRingVK::AllocConstantBuffer(std::uint32_t size, void** pData, VkDescriptorBufferInfo* pOut)
96+
{
9497
size = (std::uint32_t)Align(size, 256);
9598

9699
std::uint32_t memOffset;
@@ -111,11 +114,13 @@ bool DynamicBufferRingVK::AllocConstantBuffer(std::uint32_t size, void **pData,
111114
// AllocVertexBuffer
112115
//
113116
//--------------------------------------------------------------------------------------
114-
bool DynamicBufferRingVK::AllocVertexBuffer(std::uint32_t numbeOfVertices, UINT strideInBytes, void **pData, VkDescriptorBufferInfo *pOut) {
117+
bool CMP_DynamicBufferRingVK::AllocVertexBuffer(std::uint32_t numbeOfVertices, UINT strideInBytes, void** pData, VkDescriptorBufferInfo* pOut)
118+
{
115119
return AllocConstantBuffer(numbeOfVertices * strideInBytes, pData, pOut);
116120
}
117121

118-
bool DynamicBufferRingVK::AllocIndexBuffer(std::uint32_t numbeOfIndices, UINT strideInBytes, void **pData, VkDescriptorBufferInfo *pOut) {
122+
bool CMP_DynamicBufferRingVK::AllocIndexBuffer(std::uint32_t numbeOfIndices, UINT strideInBytes, void** pData, VkDescriptorBufferInfo* pOut)
123+
{
119124
return AllocConstantBuffer(numbeOfIndices * strideInBytes, pData, pOut);
120125
}
121126

@@ -124,11 +129,13 @@ bool DynamicBufferRingVK::AllocIndexBuffer(std::uint32_t numbeOfIndices, UINT st
124129
// OnBeginFrame
125130
//
126131
//--------------------------------------------------------------------------------------
127-
void DynamicBufferRingVK::OnBeginFrame() {
132+
void CMP_DynamicBufferRingVK::OnBeginFrame()
133+
{
128134
m_mem.OnBeginFrame();
129135
}
130136

131-
VkDescriptorBufferInfo DynamicBufferRingVK::GetMainBuffer(std::uint32_t size) {
137+
VkDescriptorBufferInfo CMP_DynamicBufferRingVK::GetMainBuffer(std::uint32_t size)
138+
{
132139
VkDescriptorBufferInfo out;
133140

134141
out.buffer = m_buffer;

applications/_plugins/c3dmodel_viewers/vulkan/util/dynamicbufferringvk.h renamed to applications/_plugins/c3dmodel_viewers/vulkan/util/cmp_dynamicbufferringvk.h

+6-5
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
// THE SOFTWARE.
1919

2020
#pragma once
21-
#include "ring.h"
22-
#include "devicevk.h"
21+
#include "cmp_ringvk.h"
22+
#include "cmp_devicevk.h"
2323

2424
// This class mimics the behaviour or the DX11 dynamic buffers.
2525
// It does so by suballocating memory from a huge buffer. The buffer is used in a ring fashion.
@@ -32,8 +32,9 @@
3232
// 3) When a new frame just started ( indicated by OnBeginFrame() )
3333
// - This will free the data of the oldest frame so it can be reused for the new frame
3434

35-
class DynamicBufferRingVK {
36-
DeviceVK* m_pDevice;
35+
class CMP_DynamicBufferRingVK
36+
{
37+
CMP_DeviceVK* m_pDevice;
3738
std::uint32_t m_memTotalSize;
3839
RingWithTabs m_mem;
3940

@@ -42,7 +43,7 @@ class DynamicBufferRingVK {
4243
VkBuffer m_buffer;
4344
VkDeviceMemory m_deviceMemory;
4445
public:
45-
void OnCreate(DeviceVK* pDevice, std::uint32_t numberOfBackBuffers, std::uint32_t memTotalSize);
46+
void OnCreate(CMP_DeviceVK* pDevice, std::uint32_t numberOfBackBuffers, std::uint32_t memTotalSize);
4647
void OnDestroy();
4748
bool AllocConstantBuffer(std::uint32_t size, void **pData, VkDescriptorBufferInfo *pOut);
4849
bool AllocVertexBuffer(std::uint32_t numbeOfVertices, UINT strideInBytes, void **pData, VkDescriptorBufferInfo *pOut);

applications/_plugins/c3dmodel_viewers/vulkan/util/frameworkwindows.cpp renamed to applications/_plugins/c3dmodel_viewers/vulkan/util/cmp_frameworkwindowsvk.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
// THE SOFTWARE.
1919

2020

21-
#include "frameworkwindows.h"
21+
#include "cmp_frameworkwindowsvk.h"
2222

2323
// LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
2424

applications/_plugins/c3dmodel_viewers/vulkan/util/imguivk.cpp renamed to applications/_plugins/c3dmodel_viewers/vulkan/util/cmp_imguivk.cpp

+7-6
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
// THE SOFTWARE.
1919

2020

21-
#include "shadercompilerhelper.h"
22-
#include "imguivk.h"
21+
#include "cmp_shadercompilerhelpervk.h"
22+
#include "cmp_imguivk.h"
2323

2424
// Data
2525
static HWND g_hWnd = 0;
@@ -28,7 +28,8 @@ struct VERTEX_CONSTANT_BUFFER {
2828
float mvp[4][4];
2929
};
3030

31-
void ImGUIVK::OnCreate(DeviceVK* pDevice, UploadHeapVK *pUploadHeap, DynamicBufferRingVK *pConstantBufferRing, VkRenderPass renderPass) {
31+
void ImGUIVK::OnCreate(CMP_DeviceVK* pDevice, CMP_UploadHeapVK* pUploadHeap, CMP_DynamicBufferRingVK* pConstantBufferRing, VkRenderPass renderPass)
32+
{
3233
m_pConstBuf = pConstantBufferRing;
3334
m_pDevice = pDevice;
3435

@@ -671,7 +672,7 @@ void ImGUIVK::Draw(VkCommandBuffer cmd_buf) {
671672

672673
bool ImGUIVK_Init(void* hwnd) {
673674
g_hWnd = (HWND)hwnd;
674-
675+
ImGui::CreateContext();
675676
ImGuiIO& io = ImGui::GetIO();
676677
io.KeyMap[ImGuiKey_Tab] = VK_TAB; // Keyboard mapping. ImGui will use those indices to peek into the io.KeyDown[] array that we will update during the application lifetime.
677678
io.KeyMap[ImGuiKey_LeftArrow] = VK_LEFT;
@@ -693,14 +694,14 @@ bool ImGUIVK_Init(void* hwnd) {
693694
io.KeyMap[ImGuiKey_Y] = 'Y';
694695
io.KeyMap[ImGuiKey_Z] = 'Z';
695696

696-
io.RenderDrawListsFn = NULL;
697+
//io.RenderDrawListsFn = NULL;
697698
io.ImeWindowHandle = g_hWnd;
698699

699700
return true;
700701
}
701702

702703
void ImGUIVK_Shutdown() {
703-
ImGui::Shutdown();
704+
//ImGui::Shutdown();
704705
g_hWnd = (HWND)0;
705706
}
706707

0 commit comments

Comments
 (0)