コード例 #1
0
static void WINE_GLAPI wine_glFogfv(GLenum pname, const GLfloat *param) {
    if(pname == GL_FOG_COORDINATE_SOURCE_EXT) {
        WineD3DContext *ctx = getActiveContext();
        ctx->gl_fog_source = (GLint) *param;
        if(*param == GL_FRAGMENT_DEPTH_EXT) {
            if(ctx->fog_enabled) old_fogcoord_glEnable(GL_FOG);
        } else {
            WARN("Fog coords activated, but not supported. Using slow emulation\n");
            old_fogcoord_glDisable(GL_FOG);
        }
    } else {
        if(pname == GL_FOG_COLOR) {
            WineD3DContext *ctx = getActiveContext();
            ctx->fogcolor[0] = param[0];
            ctx->fogcolor[1] = param[1];
            ctx->fogcolor[2] = param[2];
            ctx->fogcolor[3] = param[3];
        } else if(pname == GL_FOG_START) {
            getActiveContext()->fogstart = *param;
        } else if(pname == GL_FOG_END) {
            getActiveContext()->fogend = *param;
        }
        old_fogcoord_glFogfv(pname, param);
    }
}
コード例 #2
0
static void WINE_GLAPI wine_glDisable(GLenum cap) {
    if(cap == GL_FOG) {
        WineD3DContext *ctx = getActiveContext();
        ctx->fog_enabled = 0;
        if(ctx->gl_fog_source != GL_FRAGMENT_DEPTH_EXT) return;
    }
    old_fogcoord_glDisable(cap);
}
コード例 #3
0
ファイル: gl_compat.c プロジェクト: miurahr/wine
static void WINE_GLAPI wine_glDisable(GLenum cap) {
    if(cap == GL_FOG) {
        struct wined3d_context *ctx = context_get_current();
        ctx->fog_enabled = 0;
        if(ctx->gl_fog_source != GL_FRAGMENT_DEPTH_EXT) return;
    }
    old_fogcoord_glDisable(cap);
}
コード例 #4
0
static void WINE_GLAPI wine_glFogi(GLenum pname, GLint param) {
    if(pname == GL_FOG_COORDINATE_SOURCE_EXT) {
        WineD3DContext *ctx = getActiveContext();
        ctx->gl_fog_source = param;
        if(param == GL_FRAGMENT_DEPTH_EXT) {
            if(ctx->fog_enabled) old_fogcoord_glEnable(GL_FOG);
        } else {
            WARN("Fog coords activated, but not supported. Using slow emulation\n");
            old_fogcoord_glDisable(GL_FOG);
        }
    } else {
        if(pname == GL_FOG_START) {
            getActiveContext()->fogstart = param;
        } else if(pname == GL_FOG_END) {
            getActiveContext()->fogend = param;
        }
        old_fogcoord_glFogi(pname, param);
    }
}
コード例 #5
0
ファイル: gl_compat.c プロジェクト: miurahr/wine
static void WINE_GLAPI wine_glFogf(GLenum pname, GLfloat param) {
    struct wined3d_context *ctx = context_get_current();
    if(pname == GL_FOG_COORDINATE_SOURCE_EXT) {
        ctx->gl_fog_source = (GLint) param;
        if(param == GL_FRAGMENT_DEPTH_EXT) {
            if(ctx->fog_enabled) old_fogcoord_glEnable(GL_FOG);
        } else {
            WARN("Fog coords activated, but not supported. Using slow emulation\n");
            old_fogcoord_glDisable(GL_FOG);
        }
    } else {
        if(pname == GL_FOG_START) {
            ctx->fogstart = param;
        } else if(pname == GL_FOG_END) {
            ctx->fogend = param;
        }
        old_fogcoord_glFogf(pname, param);
    }
}