[Bug 6153] Wine 0.9.20 breaks Everquest 2
Wine Bugs
wine-bugs at winehq.org
Mon Sep 11 15:17:56 CDT 2006
http://bugs.winehq.org/show_bug.cgi?id=6153
------- Additional Comments From wine at kapila.force9.co.uk 2006-11-09 15:17 -------
I think the wrong developer has been added - the issue was not caused by
bc66d7edde877877ef7f601926520fc2e3209a43 but by
bc449ca31fbd4a97ef1a06cabbfb2787e2ea6ca1 (first one was a red herring).
Developer should be Author: Stefan Dösinger <stefan at codeweavers.com> I think.
Been working on identifying what breaks it. This change breaks it.
@@ -763,7 +773,8 @@ static VOID IWineD3DVertexShaderImpl_Gen
shader_generate_arb_declarations( (IWineD3DBaseShader*) This, reg_maps,
&buffer, &GLINFO_LOCATION);
/* We need the projection matrix to correctly render upside-down
objects (render to texture) */
- shader_addline(&buffer, "PARAM PROJECTION =
state.matrix.projection.row[1];\n");
+ shader_addline(&buffer, "PARAM PROJECTIONX =
state.matrix.projection.row[0];\n");
+ shader_addline(&buffer, "PARAM PROJECTIONY =
state.matrix.projection.row[1];\n");
AND this one
@@ -777,11 +788,21 @@ static VOID IWineD3DVertexShaderImpl_Gen
if (reg_maps->fog)
shader_addline(&buffer, "MAX result.fogcoord, TMP_FOG, 0.0;\n");
- /* Write the final position.
- * Account for any inverted textures (render to texture case) by
reversing the y coordinate
- * (this is handled in drawPrim() when it sets the MODELVIEW and
PROJECTION matrices) */
shader_addline(&buffer, "MOV result.position, TMP_OUT;\n");
- shader_addline(&buffer, "MUL result.position.y, TMP_OUT.y,
PROJECTION.y;\n");
+ /* Write the final position.
+ *
+ * OpenGL coordinates specify the center of the pixel while d3d coords
specify
+ * the corner. For that reason a translation is done with the
projection matrix,
+ * which sets the offsets to move in the w coords of the matrix(see
glTranslate manpage)
+ * Add the w coordinates to x and y, this avoids the need for a full matrix
+ * multiplication. The matrix is set up in drawprim.c, primitiveInitState.
+ */
+ shader_addline(&buffer, "ADD result.position.x, TMP_OUT.x,
PROJECTIONX.w;\n");
+ shader_addline(&buffer, "ADD result.position.y, TMP_OUT.y,
PROJECTIONY.w;\n");
+ /* Account for any inverted textures (render to texture case) by
reversing the y coordinate
+ * (this is handled in drawPrim() when it sets the MODELVIEW and
PROJECTION matrices)
+ */
+ shader_addline(&buffer, "MUL result.position.y, TMP_OUT.y,
PROJECTIONY.y;\n");
When not working, Im now getting the following errors as well.
fixme:d3d_draw:drawStridedFast >>>>>>>>>>>>>>>>> 502 from glDrawRangeElements @
drawprim.c / 1253
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the wine-bugs
mailing list