Engine Code

This commit is contained in:
Exil Productions
2025-04-07 22:07:52 +02:00
committed by GitHub
parent b940113bf2
commit fb3b098299
16 changed files with 1147 additions and 0 deletions

30
engine/texture.py Normal file
View File

@@ -0,0 +1,30 @@
from OpenGL.GL import *
from PIL import Image
import numpy as np
class Texture:
def __init__(self, path, type_name="texture_diffuse"):
self.id = glGenTextures(1)
self.type = type_name
self.path = path
image = Image.open(path)
image = image.transpose(Image.FLIP_TOP_BOTTOM)
img_data = np.array(list(image.getdata()), np.uint8)
if image.mode == "RGB":
img_format = GL_RGB
elif image.mode == "RGBA":
img_format = GL_RGBA
else:
raise ValueError(f"Unsupported image format: {image.mode}")
glBindTexture(GL_TEXTURE_2D, self.id)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
glTexImage2D(
GL_TEXTURE_2D, 0, img_format, image.width, image.height, 0,
img_format, GL_UNSIGNED_BYTE, img_data
)
glGenerateMipmap(GL_TEXTURE_2D)
image.close()