Skip to content

Commit

Permalink
Merge pull request #471 from Duron27-org/small-fixes
Browse files Browse the repository at this point in the history
Small fixes
  • Loading branch information
ptitSeb authored Aug 31, 2024
2 parents 4acb49c + 1079997 commit e6448b0
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/gl/const.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@
#define GL_INTENSITY16 0x804D
#define GL_INTENSITY16F 0x881D
#define GL_INTENSITY32F 0x8817
#define GL_R16F 0x822D
#define GL_RGB10_A2 0x8059
#define GL_RGBA16F 0x881A
#define GL_RGB16F 0x881B
Expand Down
7 changes: 7 additions & 0 deletions src/gl/shaderconv.c
Original file line number Diff line number Diff line change
Expand Up @@ -552,6 +552,13 @@ char* ConvertShader(const char* pEntry, int isVertex, shaderconv_need_t *need)
Tmp = gl4es_inplace_insert(gl4es_getline(Tmp, headline-1), GLESFakeFragDepth, Tmp, &tmpsize);
headline++;
}

const char* GLESUseShaderNonConstantGlobalInitialzers = "#extension GL_EXT_shader_non_constant_global_initializers : enable\n";
Tmp = gl4es_inplace_insert(gl4es_getline(Tmp, 1), GLESUseShaderNonConstantGlobalInitialzers, Tmp, &tmpsize);
++headline;

Tmp = gl4es_inplace_insert(gl4es_getline(Tmp, headline-1), "#define GL4ES\n", Tmp, &tmpsize);

int derivatives = (strstr(pBuffer, "dFdx(") || strstr(pBuffer, "dFdy(") || strstr(pBuffer, "fwidth("))?1:0;
const char* GLESUseDerivative = "#extension GL_OES_standard_derivatives : enable\n";
// complete fake value... A better thing should be use....
Expand Down
19 changes: 19 additions & 0 deletions src/gl/texture.c
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,16 @@ void internal2format_type(GLenum internalformat, GLenum *format, GLenum *type)
*format = GL_DEPTH_STENCIL;
*type = GL_UNSIGNED_INT_24_8;
break;
case GL_R16F:
if(!hardext.rgtex)
*format = GL_RGB;
else
*format = GL_RED;
if(!hardext.halffloattex)
*type = GL_UNSIGNED_BYTE;
else
*type = GL_HALF_FLOAT_OES;
break;
case GL_RGBA16F:
*format = GL_RGBA;
*type = (hardext.halffloattex)?GL_HALF_FLOAT_OES:GL_UNSIGNED_BYTE;
Expand Down Expand Up @@ -897,6 +907,15 @@ void APIENTRY_GL4ES gl4es_glTexImage2D(GLenum target, GLint level, GLint interna
GLsizei width, GLsizei height, GLint border,
GLenum format, GLenum type, const GLvoid *data) {
DBG(printf("glTexImage2D on target=%s with unpack_row_length(%i), size(%i,%i) and skip(%i,%i), format(internal)=%s(%s), type=%s, data=%p, level=%i (mipmap_need=%i, mipmap_auto=%i, base_level=%i, max_level=%i) => texture=%u (streamed=%i), glstate->list.compiling=%d\n", PrintEnum(target), glstate->texture.unpack_row_length, width, height, glstate->texture.unpack_skip_pixels, glstate->texture.unpack_skip_rows, PrintEnum(format), (internalformat==3)?"3":(internalformat==4?"4":PrintEnum(internalformat)), PrintEnum(type), data, level, glstate->texture.bound[glstate->texture.active][what_target(target)]->mipmap_need, glstate->texture.bound[glstate->texture.active][what_target(target)]->mipmap_auto, glstate->texture.bound[glstate->texture.active][what_target(target)]->base_level, glstate->texture.bound[glstate->texture.active][what_target(target)]->max_level, glstate->texture.bound[glstate->texture.active][what_target(target)]->texture, glstate->texture.bound[glstate->texture.active][what_target(target)]->streamed, glstate->list.compiling);)

if(data==NULL && (internalformat == GL_RGB16F || internalformat == GL_RGBA16F))
internal2format_type(internalformat, &format, &type);

if(internalformat == GL_R16F ) internal2format_type(internalformat, &format, &type);

if(data==NULL && (internalformat == GL_RED || internalformat == GL_RGB))
internal2format_type(internalformat, &format, &type);

// proxy case
const GLuint itarget = what_target(target);
const GLuint rtarget = map_tex_target(target);
Expand Down

0 comments on commit e6448b0

Please sign in to comment.