Function to set texture parameters -IN PROGRESS-

This commit is contained in:
raysan5
2016-10-27 13:40:48 +02:00
parent 5c80f65082
commit 4ff98f34bb
2 changed files with 51 additions and 2 deletions

View File

@@ -871,6 +871,48 @@ void rlDisableTexture(void)
#endif #endif
} }
// Set texture parameters
// TODO: Review this function to choose right filter/wrap value
void rlTextureParameters(unsigned int id, int param, int value)
{
/*
// TextureWrapMode
#define GL_REPEAT 0x2901
#define GL_CLAMP_TO_EDGE 0x812F
// TextureMagFilter
#define GL_NEAREST 0x2600
#define GL_LINEAR 0x2601
// TextureMinFilter
#define GL_NEAREST 0x2600
#define GL_LINEAR 0x2601
#define GL_NEAREST_MIPMAP_NEAREST 0x2700
#define GL_LINEAR_MIPMAP_NEAREST 0x2701
#define GL_NEAREST_MIPMAP_LINEAR 0x2702
#define GL_LINEAR_MIPMAP_LINEAR 0x2703
*/
int glValue = 0;
glBindTexture(GL_TEXTURE_2D, id);
switch (value)
{
case FILTER_POINT: glValue = GL_NEAREST; break;
case FILTER_BILINEAR: glValue = GL_LINEAR; break;
case FILTER_TRILINEAR: glValue = GL_LINEAR; break;
//case WRAP_REPEAT: glValue = GL_REPEAT; break;
//case WRAP_CLAMP: glValue = GL_CLAMP_TO_EDGE; break;
//case WRAP_MIRROR: glValue = GL_NEAREST; break;
default: break;
}
glTexParameteri(GL_TEXTURE_2D, param, glValue);
glBindTexture(GL_TEXTURE_2D, 0);
}
// Enable rendering to texture (fbo) // Enable rendering to texture (fbo)
void rlEnableRenderTexture(unsigned int id) void rlEnableRenderTexture(unsigned int id)
{ {

View File

@@ -90,15 +90,21 @@
#define MAX_QUADS_BATCH 1024 // Be careful with text, every letter maps a quad #define MAX_QUADS_BATCH 1024 // Be careful with text, every letter maps a quad
#endif #endif
// Texture parameters (equivalent to OpenGL defines)
#define RL_TEXTURE_MAG_FILTER 0x2800
#define RL_TEXTURE_MIN_FILTER 0x2801
#define RL_TEXTURE_WRAP_S 0x2802
#define RL_TEXTURE_WRAP_T 0x2803
//---------------------------------------------------------------------------------- //----------------------------------------------------------------------------------
// Types and Structures Definition // Types and Structures Definition
//---------------------------------------------------------------------------------- //----------------------------------------------------------------------------------
typedef enum { OPENGL_11 = 1, OPENGL_21, OPENGL_33, OPENGL_ES_20 } GlVersion;
typedef enum { RL_PROJECTION, RL_MODELVIEW, RL_TEXTURE } MatrixMode; typedef enum { RL_PROJECTION, RL_MODELVIEW, RL_TEXTURE } MatrixMode;
typedef enum { RL_LINES, RL_TRIANGLES, RL_QUADS } DrawMode; typedef enum { RL_LINES, RL_TRIANGLES, RL_QUADS } DrawMode;
typedef enum { OPENGL_11 = 1, OPENGL_21, OPENGL_33, OPENGL_ES_20 } GlVersion;
#if defined(RLGL_STANDALONE) #if defined(RLGL_STANDALONE)
#ifndef __cplusplus #ifndef __cplusplus
// Boolean type // Boolean type
@@ -296,6 +302,7 @@ void rlColor4f(float x, float y, float z, float w); // Define one vertex (color)
//------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------
void rlEnableTexture(unsigned int id); // Enable texture usage void rlEnableTexture(unsigned int id); // Enable texture usage
void rlDisableTexture(void); // Disable texture usage void rlDisableTexture(void); // Disable texture usage
void rlTextureParameters(unsigned int id, int param, int value); // Set texture parameters (filter, wrap)
void rlEnableRenderTexture(unsigned int id); // Enable render texture (fbo) void rlEnableRenderTexture(unsigned int id); // Enable render texture (fbo)
void rlDisableRenderTexture(void); // Disable render texture (fbo), return to default framebuffer void rlDisableRenderTexture(void); // Disable render texture (fbo), return to default framebuffer
void rlEnableDepthTest(void); // Enable depth test void rlEnableDepthTest(void); // Enable depth test