Daniele Bartolini 12 лет назад
Родитель
Сommit
7b5f39f425

+ 1 - 1
engine/renderers/Material.cpp

@@ -57,7 +57,7 @@ void Material::bind(Renderer& r, UniformId uniform)
 	const ResourceId tr_id = m_resource->get_texture_layer(0);
 	const TextureResource* tr = (TextureResource*) device()->resource_manager()->data(tr_id);
 
-	r.set_texture(0, uniform, tr->texture(), TEXTURE_FILTER_LINEAR | TEXTURE_WRAP_CLAMP_EDGE);
+	r.set_texture(0, uniform, tr->texture(), TEXTURE_FILTER_LINEAR | TEXTURE_WRAP_U_CLAMP_REPEAT | TEXTURE_WRAP_V_CLAMP_REPEAT);
 }
 
 } // namespace crown

+ 1 - 0
engine/renderers/backend/PixelFormat.h

@@ -28,6 +28,7 @@ OTHER DEALINGS IN THE SOFTWARE.
 
 #include "Types.h"
 #include "RendererTypes.h"
+#include "Assert.h"
 
 namespace crown
 {

+ 8 - 4
engine/renderers/backend/RenderContext.h

@@ -111,10 +111,14 @@ namespace crown
 #define TEXTURE_FILTER_MASK			0x0000000F
 #define TEXTURE_FILTER_SHIFT		0
 
-#define TEXTURE_WRAP_CLAMP_EDGE		0x00000010
-#define TEXTURE_WRAP_CLAMP_REPEAT	0x00000020
-#define TEXTURE_WRAP_MASK			0x000000F0
-#define TEXTURE_WRAP_SHIFT			4
+#define TEXTURE_WRAP_U_CLAMP_EDGE	0x00000010
+#define TEXTURE_WRAP_U_CLAMP_REPEAT	0x00000020
+#define TEXTURE_WRAP_U_MASK			0x00000030
+#define TEXTURE_WRAP_U_SHIFT		4
+#define TEXTURE_WRAP_V_CLAMP_EDGE	0x00000100
+#define TEXTURE_WRAP_V_CLAMP_REPEAT	0x00000200
+#define TEXTURE_WRAP_V_MASK			0x00000300
+#define TEXTURE_WRAP_V_SHIFT		8
 
 // Sampler flags
 #define SAMPLER_TEXTURE				0x10000000

+ 6 - 5
engine/renderers/backend/gl/GLRenderer.h

@@ -269,12 +269,13 @@ struct Texture
 	//-----------------------------------------------------------------------------
 	void set_sampler_state(uint32_t flags)
 	{
-		GLenum min_filter = TEXTURE_MIN_FILTER_TABLE[(flags & TEXTURE_FILTER_MASK) >> TEXTURE_FILTER_SHIFT];
-		GLenum mag_filter = TEXTURE_MAG_FILTER_TABLE[(flags & TEXTURE_FILTER_MASK) >> TEXTURE_FILTER_SHIFT];
-		GLenum wrap = TEXTURE_WRAP_TABLE[(flags & TEXTURE_WRAP_MASK) >> TEXTURE_WRAP_SHIFT];
+		const GLenum min_filter = TEXTURE_MIN_FILTER_TABLE[(flags & TEXTURE_FILTER_MASK) >> TEXTURE_FILTER_SHIFT];
+		const GLenum mag_filter = TEXTURE_MAG_FILTER_TABLE[(flags & TEXTURE_FILTER_MASK) >> TEXTURE_FILTER_SHIFT];
+		const GLenum wrap_s = TEXTURE_WRAP_TABLE[(flags & TEXTURE_WRAP_U_MASK) >> TEXTURE_WRAP_U_SHIFT];
+		const GLenum wrap_t = TEXTURE_WRAP_TABLE[(flags & TEXTURE_WRAP_V_MASK) >> TEXTURE_WRAP_V_SHIFT];
 
-		GL_CHECK(glTexParameteri(m_target, GL_TEXTURE_WRAP_S, wrap));
-		GL_CHECK(glTexParameteri(m_target, GL_TEXTURE_WRAP_T, wrap));
+		GL_CHECK(glTexParameteri(m_target, GL_TEXTURE_WRAP_S, wrap_s));
+		GL_CHECK(glTexParameteri(m_target, GL_TEXTURE_WRAP_T, wrap_t));
 
 		GL_CHECK(glTexParameteri(m_target, GL_TEXTURE_MIN_FILTER, min_filter));
 		GL_CHECK(glTexParameteri(m_target, GL_TEXTURE_MAG_FILTER, mag_filter));