mouse fix
This commit is contained in:
parent
337cf1e43b
commit
ef199b180e
4 changed files with 20 additions and 6 deletions
|
|
@ -18,9 +18,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
module;
|
module;
|
||||||
|
#ifdef CRAFTER_GRAPHICS_RENDERER_VULKAN
|
||||||
#include "vulkan/vulkan.h"
|
#include "vulkan/vulkan.h"
|
||||||
|
#endif
|
||||||
module Crafter.Graphics:Mesh_impl;
|
module Crafter.Graphics:Mesh_impl;
|
||||||
import Crafter.Math;
|
import Crafter.Math;
|
||||||
import :Mesh;
|
import :Mesh;
|
||||||
|
|
@ -30,6 +30,8 @@ import std;
|
||||||
|
|
||||||
using namespace Crafter;
|
using namespace Crafter;
|
||||||
|
|
||||||
|
#ifdef CRAFTER_GRAPHICS_RENDERER_VULKAN
|
||||||
|
|
||||||
void Mesh::Build(std::span<Vector<float, 3, 3>> verticies, std::span<std::uint32_t> indicies, VkCommandBuffer cmd) {
|
void Mesh::Build(std::span<Vector<float, 3, 3>> verticies, std::span<std::uint32_t> indicies, VkCommandBuffer cmd) {
|
||||||
vertexBuffer.Resize(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT | VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, verticies.size());
|
vertexBuffer.Resize(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT | VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, verticies.size());
|
||||||
indexBuffer.Resize(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT | VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, indicies.size());
|
indexBuffer.Resize(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT | VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, indicies.size());
|
||||||
|
|
@ -127,4 +129,5 @@ void Mesh::Build(std::span<Vector<float, 3, 3>> verticies, std::span<std::uint32
|
||||||
.accelerationStructure = accelerationStructure
|
.accelerationStructure = accelerationStructure
|
||||||
};
|
};
|
||||||
blasAddr = Device::vkGetAccelerationStructureDeviceAddressKHR(Device::device, &addrInfo);
|
blasAddr = Device::vkGetAccelerationStructureDeviceAddressKHR(Device::device, &addrInfo);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
@ -18,13 +18,17 @@ License along with this library; if not, write to the Free Software
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
module;
|
module;
|
||||||
|
#ifdef CRAFTER_GRAPHICS_RENDERER_VULKAN
|
||||||
#include <vulkan/vulkan_core.h>
|
#include <vulkan/vulkan_core.h>
|
||||||
|
#endif
|
||||||
module Crafter.Graphics:RenderingElement3D_impl;
|
module Crafter.Graphics:RenderingElement3D_impl;
|
||||||
import :RenderingElement3D;
|
import :RenderingElement3D;
|
||||||
import std;
|
import std;
|
||||||
|
|
||||||
using namespace Crafter;
|
using namespace Crafter;
|
||||||
|
|
||||||
|
#ifdef CRAFTER_GRAPHICS_RENDERER_VULKAN
|
||||||
|
|
||||||
std::vector<RenderingElement3D*> RenderingElement3D::elements;
|
std::vector<RenderingElement3D*> RenderingElement3D::elements;
|
||||||
|
|
||||||
void RenderingElement3D::BuildTLAS(VkCommandBuffer cmd, std::uint32_t index) {
|
void RenderingElement3D::BuildTLAS(VkCommandBuffer cmd, std::uint32_t index) {
|
||||||
|
|
@ -110,4 +114,6 @@ void RenderingElement3D::BuildTLAS(VkCommandBuffer cmd, std::uint32_t index) {
|
||||||
0, nullptr,
|
0, nullptr,
|
||||||
0, nullptr
|
0, nullptr
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -598,6 +598,8 @@ void Window::Update() {
|
||||||
vblank = duration_cast<std::chrono::milliseconds>(startTime - frameEnd);
|
vblank = duration_cast<std::chrono::milliseconds>(startTime - frameEnd);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
mouseDelta = {currentMousePos.x-lastMousePos.x, currentMousePos.y-lastMousePos.y};
|
||||||
|
|
||||||
#ifdef CRAFTER_TIMING
|
#ifdef CRAFTER_TIMING
|
||||||
auto renderStart = std::chrono::high_resolution_clock::now();
|
auto renderStart = std::chrono::high_resolution_clock::now();
|
||||||
renderTimings.clear();
|
renderTimings.clear();
|
||||||
|
|
@ -608,6 +610,8 @@ void Window::Update() {
|
||||||
totalRender = renderEnd - renderStart;
|
totalRender = renderEnd - renderStart;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
lastMousePos = currentMousePos;
|
||||||
|
|
||||||
#ifdef CRAFTER_TIMING
|
#ifdef CRAFTER_TIMING
|
||||||
frameEnd = std::chrono::high_resolution_clock::now();
|
frameEnd = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,9 @@
|
||||||
"implementations/Crafter.Graphics-Transform2D",
|
"implementations/Crafter.Graphics-Transform2D",
|
||||||
"implementations/Crafter.Graphics-GridElement",
|
"implementations/Crafter.Graphics-GridElement",
|
||||||
"implementations/Crafter.Graphics-Rendertarget",
|
"implementations/Crafter.Graphics-Rendertarget",
|
||||||
"implementations/Crafter.Graphics-Device"
|
"implementations/Crafter.Graphics-Device",
|
||||||
|
"implementations/Crafter.Graphics-Mesh",
|
||||||
|
"implementations/Crafter.Graphics-RenderingElement3D"
|
||||||
],
|
],
|
||||||
"interfaces": [
|
"interfaces": [
|
||||||
"interfaces/Crafter.Graphics-Window",
|
"interfaces/Crafter.Graphics-Window",
|
||||||
|
|
@ -61,7 +63,6 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "vulkan",
|
"name": "vulkan",
|
||||||
"implementations": ["implementations/Crafter.Graphics-Mesh", "implementations/Crafter.Graphics-RenderingElement3D"],
|
|
||||||
"defines": [
|
"defines": [
|
||||||
{
|
{
|
||||||
"name": "CRAFTER_GRAPHICS_RENDERER_VULKAN"
|
"name": "CRAFTER_GRAPHICS_RENDERER_VULKAN"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue