DXGL r146 - Code Review
For
DXGL
(
recent comments
|
status changes
|
tags
|
authors
|
states
|
release notes
|
statistics
)
Jump to navigation
Jump to search
Repository:
DXGL
Revision:
<
r145
|
r146
|
r147
>
Date:
01:07, 8 May 2012
Author:
admin
Status:
new
Tags:
Comment:
Add per-vertex colors
Add Signed Add color op
Modified paths:
/ddraw/glDirect3DDevice.cpp
(modified) (
history
)
/ddraw/shadergen.cpp
(modified) (
history
)
Diff
[
purge
]
Index: ddraw/glDirect3DDevice.cpp
—
—
@@ -1175,6 +1175,7 @@
1176
1176
case D3DTOP_MODULATE2X:
1177
1177
case D3DTOP_MODULATE4X:
1178
1178
case D3DTOP_ADD:
1179
+ case D3DTOP_ADDSIGNED:
1179
1180
break;
1180
1181
default:
1181
1182
return D3DERR_UNSUPPORTEDCOLOROPERATION;
Index: ddraw/shadergen.cpp
—
—
@@ -261,6 +261,8 @@
262
262
static const char op_spotlight[] = "SpotLight(lightX);\n";
263
263
static const char op_colorout[] = "gl_FrontColor = (material.diffuse * diffuse) + (material.ambient * ambient) + material.emissive;\n\
264
264
gl_FrontSecondaryColor = (material.specular * specular);\n";
265
+static const char op_colorvert[] = "gl_FrontColor = rgba0.bgra;\n";
266
+static const char op_color2vert[] = "gl_FrontSecondaryColor = rgba1.bgra;\n";
265
267
static const char op_colorfragout[] = "gl_FragColor = vec4(color,alpha);\n";
266
268
static const char op_colorfragin[] = "color = gl_Color.rgb;\n\
267
269
alpha = gl_Color.a;\n";
—
—
@@ -411,11 +413,11 @@
412
414
vsrc->append(mainstart);
413
415
if((id>>50)&1) vsrc->append(op_passthru);
414
416
else vsrc->append(op_transform);
415
- vsrc->append(op_resetcolor);
416
417
if((id>>49)&1) vsrc->append(op_normalize);
417
418
else vsrc->append(op_normalpassthru);
418
419
if(numlights)
419
420
{
421
+ vsrc->append(op_resetcolor);
420
422
for(i = 0; i < numlights; i++)
421
423
{
422
424
if(id>>(38+i)&1)
—
—
@@ -440,8 +442,13 @@
441
443
}
442
444
}
443
445
}
446
+ vsrc->append(op_colorout);
444
447
}
445
- vsrc->append(op_colorout);
448
+ else
449
+ {
450
+ if((id>>35)&1) vsrc->append(op_colorvert);
451
+ if((id>>36)&1) vsrc->append(op_color2vert);
452
+ }
446
453
int texindex;
447
454
for(i = 0; i < 8; i++)
448
455
{
—
—
@@ -622,6 +629,9 @@
623
630
case D3DTOP_ADD:
624
631
fsrc->append("color = " + arg1 + " + " + arg2 + ";\n");
625
632
break;
633
+ case D3DTOP_ADDSIGNED:
634
+ fsrc->append("color = " + arg1 + " + " + arg2 + " - .5;\n");
635
+ break;
626
636
}
627
637
}
628
638
fsrc->append(op_colorfragout);
Navigation menu
Personal tools
Log in
Namespaces
Special page
English
expanded
collapsed
Views
More
expanded
collapsed
Search
Navigation
Home
Main page
Recent changes
Random page
MediaWiki help
Introduction
Progress
Downloads
Source code
Build from source
AppDB
Bug reports
Forums
Tools
Special pages
Printable version