http://bugs.winehq.org/show_bug.cgi?id=6153
------- Additional Comments From wine@kapila.force9.co.uk 2006-11-09 16:28 ------- OK - please bear with me while I try to track this down (Never played with the shaders before.)
The line which appear to cause the program to "break" is shown below. Commenting this line, means everything works (as well as it did before the patch)
* 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"); // <----THIS LIKE CAUSES THE ISSUE!! shader_addline(&buffer, "ADD result.position.y, TMP_OUT.y, PROJECTIONY.w;\n");
Sorry about the multiple posts - just trying to give as much info as possible.