Skip to content

Commit

Permalink
Added subtract and reverse subtract blending modes
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Aug 12, 2003
1 parent 36c5578 commit 67b0e02
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 15 deletions.
4 changes: 4 additions & 0 deletions doomsday/Include/dglib.h
Expand Up @@ -125,6 +125,7 @@ enum
DGL_PALETTED_GENMIPS,
DGL_MODULATE_ADD_COMBINE,
DGL_MODULATE_TEXTURE,
DGL_BLENDING_OP,

DGL_TEXTURE0 = 0x5F00,
DGL_TEXTURE1,
Expand All @@ -147,6 +148,9 @@ enum
DGL_SRC_ALPHA,
DGL_ONE_MINUS_SRC_ALPHA,
DGL_SRC_ALPHA_SATURATE,
DGL_ADD,
DGL_SUBTRACT,
DGL_REVERSE_SUBTRACT,

// Comparative functions
DGL_ALWAYS = 0x7000,
Expand Down
20 changes: 11 additions & 9 deletions doomsday/Include/r_model.h
Expand Up @@ -25,15 +25,17 @@
#define MFF_DARKSHADOW 0x2000
#define MFF_IDSKIN 0x4000 // Mobj id -> skin in skin range
#define MFF_DISABLE_Z_WRITE 0x8000
#define MFF_NO_DISTANCE_CHECK 0x10000
#define MFF_SELSKIN 0x20000
#define MFF_PARTICLE_SUB1 0x40000 // Sub1 center is particle origin.
#define MFF_NO_PARTICLES 0x80000 // No particles for this object.
#define MFF_SHINY_SPECULAR 0x100000 // Shiny skin rendered as additive.
#define MFF_SHINY_LIT 0x200000 // Shiny skin is not fullbright.
#define MFF_IDFRAME 0x400000 // Mobj id -> frame in frame range
#define MFF_IDANGLE 0x800000 // Mobj id -> static angle offset
#define MFF_DIM 0x1000000 // Never fullbright.
#define MFF_NO_DISTANCE_CHECK 0x00010000
#define MFF_SELSKIN 0x00020000
#define MFF_PARTICLE_SUB1 0x00040000 // Sub1 center is particle origin.
#define MFF_NO_PARTICLES 0x00080000 // No particles for this object.
#define MFF_SHINY_SPECULAR 0x00100000 // Shiny skin rendered as additive.
#define MFF_SHINY_LIT 0x00200000 // Shiny skin is not fullbright.
#define MFF_IDFRAME 0x00400000 // Mobj id -> frame in frame range
#define MFF_IDANGLE 0x00800000 // Mobj id -> static angle offset
#define MFF_DIM 0x01000000 // Never fullbright.
#define MFF_SUBTRACT 0x02000000 // Subtract blending.
#define MFF_REVERSE_SUBTRACT 0x04000000 // Reverse subtract blending.

typedef struct
{
Expand Down
21 changes: 15 additions & 6 deletions doomsday/Src/drOpenGL/ext.c
Expand Up @@ -25,20 +25,23 @@
// PUBLIC DATA DEFINITIONS -------------------------------------------------

int extMultiTex;
int extBlendSub;
int extTexEnvComb;
int extNvTexEnvComb;
int extAtiTexEnvComb;
int extAniso;
int extLockArray;
int extGenMip;

PFNGLCLIENTACTIVETEXTUREPROC glClientActiveTextureARB = 0;
PFNGLACTIVETEXTUREARBPROC glActiveTextureARB = 0;
PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB = 0;
PFNGLMULTITEXCOORD2FVARBPROC glMultiTexCoord2fvARB = 0;
PFNGLCLIENTACTIVETEXTUREPROC glClientActiveTextureARB;
PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB;
PFNGLMULTITEXCOORD2FVARBPROC glMultiTexCoord2fvARB;

PFNGLLOCKARRAYSEXTPROC glLockArraysEXT = 0;
PFNGLUNLOCKARRAYSEXTPROC glUnlockArraysEXT = 0;
PFNGLBLENDEQUATIONEXTPROC glBlendEquationEXT;

PFNGLLOCKARRAYSEXTPROC glLockArraysEXT;
PFNGLUNLOCKARRAYSEXTPROC glUnlockArraysEXT;

// PRIVATE DATA DEFINITIONS ------------------------------------------------

Expand Down Expand Up @@ -111,6 +114,12 @@ void initExtensions(void)
query("GL_EXT_shared_texture_palette", &sharedPalExtAvailable);
query("GL_EXT_texture_filter_anisotropic", &extAniso);

// EXT_blend_subtract
if(query("GL_EXT_blend_subtract", &extBlendSub))
{
GETPROC( glBlendEquationEXT );
}

// ARB_texture_env_combine
if(!query("GL_ARB_texture_env_combine", &extTexEnvComb))
{
Expand Down

0 comments on commit 67b0e02

Please sign in to comment.