#define SHADERTYPE_BEFORE 1
#define SHADERTYPE_AFTER 2
#define SHADERTYPE_MIDDLE 3
-#define SHADERTYPE_MASK_BEFORE 3
-#define SHADERTYPE_MASK_AFTER 4
+#define SHADERTYPE_MASK_BEFORE 4
+#define SHADERTYPE_MASK_AFTER 5
+#define SHADERTYPE_MASK_MIDDLE 6
#define SHADERTYPE_POST 10
struct shaderdata
}
}
if (d3d->filterd3d->gfx_filtermask[2 * MAX_FILTERSHADERS][0]) {
- struct shaderdata *s = allocshaderslot (d3d, SHADERTYPE_MASK_AFTER);
+ struct shaderdata *s = allocshaderslot (d3d, SHADERTYPE_MASK_MIDDLE);
createmasktexture (d3d, d3d->filterd3d->gfx_filtermask[2 * MAX_FILTERSHADERS], s);
}
for (int i = 0; i < MAX_FILTERSHADERS; i++) {
struct shaderdata *s = &d3d->shaders[i];
if (s->type == SHADERTYPE_AFTER)
after = i;
- if (s->masktexture)
+ if (s->type == SHADERTYPE_MASK_MIDDLE && s->masktexture)
masktexture = s->masktexture;
}
#define SHADERTYPE_BEFORE 1
#define SHADERTYPE_AFTER 2
#define SHADERTYPE_MIDDLE 3
-#define SHADERTYPE_MASK_BEFORE 3
-#define SHADERTYPE_MASK_AFTER 4
+#define SHADERTYPE_MASK_BEFORE 4
+#define SHADERTYPE_MASK_AFTER 5
+#define SHADERTYPE_MASK_MIDDLE 6
#define SHADERTYPE_POST 10
struct shadertex
d3d->m_screenWidth, d3d->m_screenHeight,
d3d->m_bitmapWidth, d3d->m_bitmapHeight);
}
+
d3d->sr2 = sr;
d3d->dr2 = dr;
d3d->zr2 = zr;
d3d->m_deviceContext->VSSetShader(d3d->m_vertexShader, NULL, 0);
bool mask = false;
for (int i = 0; i < MAX_SHADERS; i++) {
- if (d3d->shaders[i].type == SHADERTYPE_MASK_AFTER && d3d->shaders[i].masktexturerv) {
+ if (d3d->shaders[i].type == SHADERTYPE_MASK_MIDDLE && d3d->shaders[i].masktexturerv) {
mask = true;
}
}
int after = -1;
for (int i = 0; i < MAX_SHADERS; i++) {
struct shaderdata11 *s = &d3d->shaders[i];
- if (s->type == SHADERTYPE_MASK_AFTER && s->masktexturerv) {
+ if (s->type == SHADERTYPE_MASK_MIDDLE && s->masktexturerv) {
d3d->m_deviceContext->PSSetShaderResources(1, 1, &s->masktexturerv);
mask = true;
}
}
}
if (d3d->filterd3d->gfx_filtermask[2 * MAX_FILTERSHADERS][0]) {
- struct shaderdata11 *s = allocshaderslot(d3d, SHADERTYPE_MASK_AFTER);
+ struct shaderdata11 *s = allocshaderslot(d3d, SHADERTYPE_MASK_MIDDLE);
if (!createmasktexture(d3d, d3d->filterd3d->gfx_filtermask[2 * MAX_FILTERSHADERS], s)) {
freeshaderdata(s);
}