Sfoglia il codice sorgente

Function to set texture parameters -IN PROGRESS-

pull/192/head
raysan5 8 anni fa
parent
commit
4ff98f34bb
2 ha cambiato i file con 51 aggiunte e 2 eliminazioni
  1. +42
    -0
      src/rlgl.c
  2. +9
    -2
      src/rlgl.h

+ 42
- 0
src/rlgl.c Vedi File

@ -871,6 +871,48 @@ void rlDisableTexture(void)
#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)
void rlEnableRenderTexture(unsigned int id)
{

+ 9
- 2
src/rlgl.h Vedi File

@ -90,15 +90,21 @@
#define MAX_QUADS_BATCH 1024 // Be careful with text, every letter maps a quad
#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
//----------------------------------------------------------------------------------
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_LINES, RL_TRIANGLES, RL_QUADS } DrawMode;
typedef enum { OPENGL_11 = 1, OPENGL_21, OPENGL_33, OPENGL_ES_20 } GlVersion;
#if defined(RLGL_STANDALONE)
#ifndef __cplusplus
// 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 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 rlDisableRenderTexture(void); // Disable render texture (fbo), return to default framebuffer
void rlEnableDepthTest(void); // Enable depth test

Caricamento…
Annulla
Salva