summaryrefslogtreecommitdiff
path: root/Canvas
diff options
context:
space:
mode:
authorAndrew Guschin <guschin.drew@gmail.com>2022-04-02 09:13:33 +0400
committerAndrew Guschin <guschin.drew@gmail.com>2022-04-02 09:13:33 +0400
commit806a1e093eeac8b426b20717c14260c9cb896798 (patch)
tree7b6e1a01958269ce78b9716461a9fa4c05d3dc5e /Canvas
parent15ccb946f43283bfc91d80ddf012d9ae2a0333ed (diff)
Removed CUDA files and changed build system to premakeremake
Diffstat (limited to 'Canvas')
-rw-r--r--Canvas/Canvas.h117
-rw-r--r--Canvas/cuda/CalculateCanvasGPU.cu52
-rw-r--r--Canvas/cuda/CalculateCanvasGPU.h20
3 files changed, 0 insertions, 189 deletions
diff --git a/Canvas/Canvas.h b/Canvas/Canvas.h
deleted file mode 100644
index 84dbe56..0000000
--- a/Canvas/Canvas.h
+++ /dev/null
@@ -1,117 +0,0 @@
-//
-// Created by saintruler on 04.05.19.
-//
-
-#ifndef OPENGLTEST_CANVAS_H
-#define OPENGLTEST_CANVAS_H
-
-#include <glad/glad.h>
-#include <GLFW/glfw3.h>
-
-#include <iostream>
-
-struct Color
-{
- unsigned int r = 0, g = 0, b = 0;
-};
-
-class Canvas
-{
-public:
- Canvas(int width, int height)
- {
-// vertices = {
-// // positions // colors // texture coords
-// 1.f, 1.f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, // top right
-// 1.f, -1.f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // bottom right
-// -1.f, -1.f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // bottom left
-// -1.f, 1.f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f // top left
-// };
-//
-// indices = {
-// 0, 1, 3, // first triangle
-// 1, 2, 3 // second triangle
-// };
-
- glGenVertexArrays(1, &VAO);
- glGenBuffers(1, &VBO);
- glGenBuffers(1, &EBO);
-
- glBindVertexArray(VAO);
-
- glBindBuffer(GL_ARRAY_BUFFER, VBO);
- glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
-
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
- glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
-
- // position attribute
- glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)0);
- glEnableVertexAttribArray(0);
- // color attribute
- glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(3 * sizeof(float)));
- glEnableVertexAttribArray(1);
- // texture coord attribute
- glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(6 * sizeof(float)));
- glEnableVertexAttribArray(2);
-
-
- this->width = width;
- this->height = height;
-
- canvas = (unsigned char*) malloc(width * height * 3);
- glGenTextures(1, &texture);
- }
-
- void SetPixel(int x, int y, Color color)
- {
- canvas[y * width * 3 + x * 3 + 0] = color.r;
- canvas[y * width * 3 + x * 3 + 1] = color.g;
- canvas[y * width * 3 + x * 3 + 2] = color.b;
-
- UpdateTexture();
- }
-
- void UpdateTexture()
- {
- // all upcoming GL_TEXTURE_2D operations now have effect on this texture object
- glBindTexture(GL_TEXTURE_2D, texture);
-
- // set texture wrapping to GL_REPEAT (default wrapping method)
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
-
- // set texture filtering parameters
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, width, 0, GL_RGB, GL_UNSIGNED_BYTE, canvas);
- glGenerateMipmap(GL_TEXTURE_2D);
- }
-
- void DrawTexture()
- {
- glBindTexture(GL_TEXTURE_2D, texture);
- // render container
-// ourShader.use();
- glBindVertexArray(VAO);
- glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
- }
-
- unsigned int* GetTexture()
- {
- return &(this->texture);
- }
-
-private:
- int width, height;
- unsigned char* canvas;
- unsigned int texture;
-
- unsigned int VBO, VAO, EBO;
-
- float* vertices;
- unsigned int* indices;
-};
-
-#endif //OPENGLTEST_CANVAS_H
diff --git a/Canvas/cuda/CalculateCanvasGPU.cu b/Canvas/cuda/CalculateCanvasGPU.cu
deleted file mode 100644
index c8c6fad..0000000
--- a/Canvas/cuda/CalculateCanvasGPU.cu
+++ /dev/null
@@ -1,52 +0,0 @@
-#include "CalculateCanvasGPU.h"
-
-__global__
-void calculate(unsigned char* canvas, int width, cuda_point* points, int nPoints)
-{
- int canvasX = blockIdx.x * blockDim.x + threadIdx.x;
- int canvasY = blockIdx.y * blockDim.y + threadIdx.y;
-
- int pathX, pathY;
- int length_squared;
- double f = 0;
-
- for (int i = 0; i < nPoints; i++)
- {
- pathX = points[i].x - canvasX;
- pathY = points[i].y - canvasY;
-
- length_squared = pathX * pathX + pathY * pathY;
- f += (1e5 * 20) / (float) length_squared;
- }
-
- int l = (int) f;
- if (l > 255) l = 255;
-
- canvas[canvasY * width * 3 + canvasX * 3 + 0] = l;
- canvas[canvasY * width * 3 + canvasX * 3 + 1] = 0;
- canvas[canvasY * width * 3 + canvasX * 3 + 2] = 0;
-}
-
-void generate_canvas(int width, int height, unsigned char* canvas, cuda_point* points, int nPoints)
-{
- const int canvasSize = width * height * 3 * sizeof(unsigned char);
- const int pointsSize = nPoints * sizeof(cuda_point);
-
- unsigned char* gpuCanvas;
- cuda_point* gpuPoints;
-
- cudaMalloc((void**) &gpuCanvas, canvasSize);
- cudaMalloc((void**) &gpuPoints, pointsSize);
-
- cudaMemcpy(gpuCanvas, canvas, canvasSize, cudaMemcpyHostToDevice);
- cudaMemcpy(gpuPoints, points, pointsSize, cudaMemcpyHostToDevice);
-
- dim3 threadsPerBlock(16, 16);
- dim3 numBlocks(width / threadsPerBlock.x, height / threadsPerBlock.y);
- calculate<<<numBlocks, threadsPerBlock>>>(gpuCanvas, width, gpuPoints, nPoints);
-
- cudaMemcpy(canvas, gpuCanvas, canvasSize, cudaMemcpyDeviceToHost);
-
- cudaFree(gpuCanvas);
- cudaFree(gpuPoints);
-}
diff --git a/Canvas/cuda/CalculateCanvasGPU.h b/Canvas/cuda/CalculateCanvasGPU.h
deleted file mode 100644
index 46f54c5..0000000
--- a/Canvas/cuda/CalculateCanvasGPU.h
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Created by saintruler on 05.05.19.
-//
-
-#ifndef OPENGLTEST_CALCULATECANVASGPU_H
-#define OPENGLTEST_CALCULATECANVASGPU_H
-
-#include <iostream>
-#include <vector>
-#include <fstream>
-
-typedef struct
-{
- int x, y;
-} cuda_point;
-
-
-void generate_canvas(int width, int height, unsigned char* canvas, cuda_point* points, int nPoints);
-
-#endif //OPENGLTEST_CALCULATECANVASGPU_H