Browse Source

Tweaks to GL ES

- use nvgCreateGLES2() instead of nvgCreateGL2() when NANOVG_GLES2 is
specified (ditto for gl3)
- use GL_RED instead of GL_LUMINANCE in ES3
shared-context
Mikko Mononen 11 years ago
parent
commit
8cb6eea358
4 changed files with 39 additions and 12 deletions
  1. +2
    -2
      example/example_gles2.c
  2. +2
    -2
      example/example_gles3.c
  3. +18
    -0
      src/nanovg_gl2.h
  4. +17
    -8
      src/nanovg_gl3.h

+ 2
- 2
example/example_gles2.c View File

@@ -73,7 +73,7 @@ int main()

glfwMakeContextCurrent(window);

vg = nvgCreateGL2(512, 512, NVG_ANTIALIAS);
vg = nvgCreateGLES2(512, 512, NVG_ANTIALIAS);
if (vg == NULL) {
printf("Could not init nanovg.\n");
return -1;
@@ -122,7 +122,7 @@ int main()

freeDemoData(vg, &data);

nvgDeleteGL2(vg);
nvgDeleteGLES2(vg);

glfwTerminate();
return 0;


+ 2
- 2
example/example_gles3.c View File

@@ -73,7 +73,7 @@ int main()

glfwMakeContextCurrent(window);

vg = nvgCreateGL3(512, 512, NVG_ANTIALIAS);
vg = nvgCreateGLES3(512, 512, NVG_ANTIALIAS);
if (vg == NULL) {
printf("Could not init nanovg.\n");
return -1;
@@ -122,7 +122,7 @@ int main()

freeDemoData(vg, &data);

nvgDeleteGL3(vg);
nvgDeleteGLES3(vg);

glfwTerminate();
return 0;


+ 18
- 0
src/nanovg_gl2.h View File

@@ -24,9 +24,19 @@ extern "C" {

#define NVG_ANTIALIAS 1

#ifdef NANOVG_GLES2

struct NVGcontext* nvgCreateGLES2(int atlasw, int atlash, int edgeaa);
void nvgDeleteGLES2(struct NVGcontext* ctx);

#else

struct NVGcontext* nvgCreateGL2(int atlasw, int atlash, int edgeaa);
void nvgDeleteGL2(struct NVGcontext* ctx);

#endif


#ifdef __cplusplus
}
#endif
@@ -854,7 +864,11 @@ static void glnvg__renderDelete(void* uptr)
}


#ifdef NANOVG_GLES2
struct NVGcontext* nvgCreateGLES2(int atlasw, int atlash, int edgeaa)
#else
struct NVGcontext* nvgCreateGL2(int atlasw, int atlash, int edgeaa)
#endif
{
struct NVGparams params;
struct NVGcontext* ctx = NULL;
@@ -891,7 +905,11 @@ error:
return NULL;
}

#ifdef NANOVG_GLES2
void nvgDeleteGLES2(struct NVGcontext* ctx)
#else
void nvgDeleteGL2(struct NVGcontext* ctx)
#endif
{
nvgDeleteInternal(ctx);
}


+ 17
- 8
src/nanovg_gl3.h View File

@@ -24,9 +24,18 @@ extern "C" {

#define NVG_ANTIALIAS 1

#ifdef NANOVG_GLES3

struct NVGcontext* nvgCreateGLES3(int atlasw, int atlash, int edgeaa);
void nvgDeleteGLES3(struct NVGcontext* ctx);

#else

struct NVGcontext* nvgCreateGL3(int atlasw, int atlash, int edgeaa);
void nvgDeleteGL3(struct NVGcontext* ctx);

#endif

#ifdef __cplusplus
}
#endif
@@ -444,11 +453,7 @@ static int glnvg__renderCreateTexture(void* uptr, int type, int w, int h, const
if (type == NVG_TEXTURE_RGBA)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
else
#ifdef NANOVG_GLES3
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, w, h, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, data);
#else
glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, w, h, 0, GL_RED, GL_UNSIGNED_BYTE, data);
#endif

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
@@ -481,11 +486,7 @@ static int glnvg__renderUpdateTexture(void* uptr, int image, int x, int y, int w
if (tex->type == NVG_TEXTURE_RGBA)
glTexSubImage2D(GL_TEXTURE_2D, 0, x,y, w,h, GL_RGBA, GL_UNSIGNED_BYTE, data);
else
#ifdef NANOVG_GLES3
glTexSubImage2D(GL_TEXTURE_2D, 0, x,y, w,h, GL_LUMINANCE, GL_UNSIGNED_BYTE, data);
#else
glTexSubImage2D(GL_TEXTURE_2D, 0, x,y, w,h, GL_RED, GL_UNSIGNED_BYTE, data);
#endif

return 1;
}
@@ -869,7 +870,11 @@ static void glnvg__renderDelete(void* uptr)
}


#ifdef NANOVG_GLES3
struct NVGcontext* nvgCreateGLES3(int atlasw, int atlash, int edgeaa)
#else
struct NVGcontext* nvgCreateGL3(int atlasw, int atlash, int edgeaa)
#endif
{
struct NVGparams params;
struct NVGcontext* ctx = NULL;
@@ -906,7 +911,11 @@ error:
return NULL;
}

#ifdef NANOVG_GLES3
void nvgDeleteGLES3(struct NVGcontext* ctx)
#else
void nvgDeleteGL3(struct NVGcontext* ctx)
#endif
{
nvgDeleteInternal(ctx);
}


Loading…
Cancel
Save