Texture.h
branchv_0
changeset 19 262828ae9682
child 28 4cbd9c0beb4c
--- /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;
+};