u32 ckLowLevelAPI::registerTexture(u16 width, u16 height, TextureFormat format, const void* image)
{
    glEnable(GL_TEXTURE_2D);

    u32 tex_obj;

    glGenTextures(1, &tex_obj);
    glBindTexture(GL_TEXTURE_2D, tex_obj);

    glGetError();

    if (image)
    {
        static const GLint s_gl_internal_format[] =
        {
            GL_RGB, GL_RGBA, GL_ALPHA
        };

        glTexImage2D(GL_TEXTURE_2D, 0, s_gl_internal_format[format], width, height, 0, s_gl_internal_format[format], GL_UNSIGNED_BYTE, image);
    }

    if (glGetError() != GL_NO_ERROR)
    {
        tex_obj = 0;
    }

    resetTexture();

    return tex_obj;
}
void ckLowLevelAPI::resetDrawState()
{
    glEnable(GL_SCISSOR_TEST);
    glEnable(GL_DEPTH_TEST);

#ifndef CK_GLES2
    glShadeModel(GL_SMOOTH);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
#endif

#if defined(CK_GLES1) || defined(CK_GLES2)
    glClearDepthf(-1.0f);
#else
    glClearDepth(-1.0f);
#endif

    resetDepthTest();
    resetBlendMode();
    resetWriteMode();
    resetBackfaceCulling();
    resetTexture();
    resetShader();

#ifndef CK_GLES2
    resetVertexArrayState();
    resetColorArrayState();
    resetTexCoordArrayState();
#endif
}
Exemplo n.º 3
0
void Painter::resetState()
{
    resetColor();
    resetOpacity();
    resetCompositionMode();
    resetClipRect();
    resetShaderProgram();
    resetTexture();
    resetAlphaWriting();
}
void ckLowLevelAPI::replaceSubTexture(u32 tex_obj, u16 x, u16 y, u16 width, u16 height, TextureFormat format, const void* sub_image)
{
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, tex_obj);

    if (sub_image)
    {
        static const GLint s_gl_internal_format[] =
        {
            GL_RGB, GL_RGBA, GL_ALPHA
        };

        glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, width, height, s_gl_internal_format[format], GL_UNSIGNED_BYTE, sub_image);
    }

    resetTexture();
}
Exemplo n.º 5
0
GLTextureStage::~GLTextureStage() {
	resetTexture();
}
void ckLowLevelAPI::unregisterTexture(u32 tex_obj)
{
    glDeleteTextures(1, &tex_obj);

    resetTexture();
}