--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Texture.h Mon Dec 04 21:03:53 2023 +0100
@@ -0,0 +1,47 @@
+/**
+ * ShaderShark
+ * Copyright © 2023 František Kučera (Frantovo.cz, GlobalCode.info)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <string>
+
+#include "Buffer.h"
+
+class Texture {
+public:
+
+ /**
+ * @param width horizontal pixel count
+ * @param height vertical pixel count
+ * @param img RGBA pixels, 8 bits per channel, size == width * height * 4
+ * @param fileName not used by this class, just stored for others
+ */
+ Texture(int width, int height, const Buffer& img,
+ const std::string& fileName);
+ virtual ~Texture();
+ GLuint getId() const;
+ const std::string getFileName() const;
+ int getWidth() const;
+ int getHeight() const;
+ GLfloat getRatio() const;
+ void update(int width, int height, const Buffer& img);
+private:
+ class Impl;
+ Impl* impl;
+ Texture(const Texture&) = delete;
+ Texture& operator=(const Texture&) = delete;
+};