From 3db30fee6e821494bd664ccd4c6ec5ec1df00021 Mon Sep 17 00:00:00 2001 From: JimmyBinoculars Date: Fri, 20 Feb 2026 13:38:05 +0000 Subject: [PATCH] A load of stuff --- Dockerfile | 23 +++++++++++++++++++++++ README.md | 37 +++++++++++++++++++++++++++++++++++++ cve_model.hpp | 22 ++++++++++++++++++++++ shaders/simple_shader.vert | 9 +++------ 4 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 cve_model.hpp diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..06ad274 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM ubuntu:22.04 + +# Install dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + cmake \ + git \ + vulkan-tools \ + libvulkan-dev \ + vulkan-validationlayers \ + spirv-tools \ + libxxf86vm-dev \ + libxi-dev \ + libglfw3-dev \ + libglm-dev \ + wget \ + && rm -rf /var/lib/apt/lists/* + +# Install glslc +RUN wget -O /tmp/glslc.deb https://storage.googleapis.com/shaderc/badges/build_link_linux_gcc_release.html && \ + apt-get update && apt-get install -y /tmp/glslc.deb || true + +WORKDIR /workspace \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..0b0ebb5 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# Most linux distros +## To build the container +`docker build -t vulkan-dev .` +## To run the container +```sh +sudo docker run -it \ + --device /dev/dri \ + -e DISPLAY=$DISPLAY \ + -v /tmp/.X11-unix:/tmp/.X11-unix \ + -v "$(pwd)":/workspace \ + vulkan-dev +``` +## To enable X11 access: +`xhost +local:docker` + +# Windows +## To build the container (in powershell) +`docker build -t vulkan-dev .` +## To run it +### Option one with WSLg (recommended) +```sh +docker run -it \ + -v "$(pwd)":/workspace \ + vulkan-dev +``` +### Option two with VcXsrv +Set display in powershell: +`$env:DISPLAY="host.docker.internal:0.0"` +Run container: +```sh +docker run -it ` + -e DISPLAY=host.docker.internal:0.0 ` + -v ${PWD}:/workspace ` + vulkan-dev +``` + +Not working \ No newline at end of file diff --git a/cve_model.hpp b/cve_model.hpp new file mode 100644 index 0000000..2c99e08 --- /dev/null +++ b/cve_model.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include "cve_device.hpp" + +namespace cve { + class CveModel { + public: + CveModel(); + ~CveModel(); + + CveModel(const CveModel &) = delete; + CveModel &operator=(const CveModel &) = delete; + + void bind(VkCommandBuffer commandBuffer); + void draw(VkCommandBuffer commandBuffer); + private: + CveDevice &cveDevice; + VkBuffer vertexBuffer; + VkDeviceMemory vertexBufferMemory; + uint32_t vertexCount; + }; +} \ No newline at end of file diff --git a/shaders/simple_shader.vert b/shaders/simple_shader.vert index 8df5430..5d8e89b 100644 --- a/shaders/simple_shader.vert +++ b/shaders/simple_shader.vert @@ -1,10 +1,7 @@ #version 450 -vec2 positions[3] = vec2[] ( - vec2(0.0, -0.5), - vec2(0.5, 0.5), - vec2(-0.5, 0.5) -); +layout(location = 0) in vec2 position; + void main() { - gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0); + gl_Position = vec4(position, 0.0, 1.0); }