<div class="gmail_quote">On Mon, Aug 16, 2010 at 2:46 PM, Luca Barbieri <span dir="ltr"><<a href="mailto:luca@luca-barbieri.com" target="_blank">luca@luca-barbieri.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
If OpenGL 2 is not supported, GLEW doesn't set the pointer for the<br>
GL2 syntax function, leading to a segfault.<br>
---<br>
tests/general/stencil-twoside.c | 30 ++++++++++++++++++++----------<br>
1 files changed, 20 insertions(+), 10 deletions(-)<br>
<br>
diff --git a/tests/general/stencil-twoside.c b/tests/general/stencil-twoside.c<br>
index a85f338..d32dde0 100644<br>
--- a/tests/general/stencil-twoside.c<br>
+++ b/tests/general/stencil-twoside.c<br>
@@ -80,12 +80,14 @@ piglit_display(void)<br>
if (use20syntax) {<br>
glStencilFuncSeparate(GL_FRONT, GL_ALWAYS, 0, ~0);<br>
glStencilFuncSeparate(GL_BACK, GL_ALWAYS, 0, ~0);<br>
+ glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR);<br>
+ glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_DECR);<br>
}<br>
else {<br>
glStencilFuncSeparateATI(GL_ALWAYS, GL_ALWAYS, 0, ~0);<br>
+ glStencilOpSeparateATI(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR);<br>
+ glStencilOpSeparateATI(GL_BACK, GL_KEEP, GL_KEEP, GL_DECR);<br>
}<br>
- glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR);<br>
- glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_DECR);<br>
<br>
glColor3f(0.9, 0.9, 0.9);<br>
for (i = 0 ; i < (max_stencil + 5) ; i++) {<br>
@@ -102,12 +104,14 @@ piglit_display(void)<br>
if (use20syntax) {<br>
glStencilFuncSeparate(GL_FRONT, GL_ALWAYS, 0, ~0);<br>
glStencilFuncSeparate(GL_BACK, GL_ALWAYS, 0, ~0);<br>
+ glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_DECR);<br>
+ glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR);<br>
}<br>
else {<br>
glStencilFuncSeparateATI(GL_ALWAYS, GL_ALWAYS, 0, ~0);<br>
+ glStencilOpSeparateATI(GL_FRONT, GL_KEEP, GL_KEEP, GL_DECR);<br>
+ glStencilOpSeparateATI(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR);<br>
}<br>
- glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_DECR);<br>
- glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR);<br>
<br>
glColor3f(0.9, 0.9, 0.9);<br>
for (i = 0 ; i < (max_stencil + 5) ; i++) {<br>
@@ -124,12 +128,14 @@ piglit_display(void)<br>
if (use20syntax) {<br>
glStencilFuncSeparate(GL_FRONT, GL_NEVER, 0, ~0);<br>
glStencilFuncSeparate(GL_BACK, GL_ALWAYS, 0, ~0);<br>
+ glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_DECR);<br>
+ glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR);<br>
}<br>
else {<br>
glStencilFuncSeparateATI(GL_NEVER, GL_ALWAYS, 0, ~0);<br>
+ glStencilOpSeparateATI(GL_FRONT, GL_KEEP, GL_KEEP, GL_DECR);<br>
+ glStencilOpSeparateATI(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR);<br>
}<br>
- glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_DECR);<br>
- glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR);<br>
<br>
glColor3f(0.9, 0.9, 0.9);<br>
for (i = 0 ; i < (max_stencil + 5) ; i++) {<br>
@@ -148,12 +154,14 @@ piglit_display(void)<br>
if (use20syntax) {<br>
glStencilFuncSeparate(GL_FRONT, GL_ALWAYS, 0, ~0);<br>
glStencilFuncSeparate(GL_BACK, GL_ALWAYS, 0, ~0);<br>
+ glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR);<br>
+ glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_DECR);<br>
}<br>
else {<br>
glStencilFuncSeparateATI(GL_ALWAYS, GL_ALWAYS, 0, ~0);<br>
+ glStencilOpSeparateATI(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR);<br>
+ glStencilOpSeparateATI(GL_BACK, GL_KEEP, GL_KEEP, GL_DECR);<br>
}<br>
- glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR);<br>
- glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_DECR);<br>
<br>
glColor3f(0.9, 0.9, 0.9);<br>
for (i = 0 ; i < (max_stencil + 5) ; i++) {<br>
@@ -172,12 +180,14 @@ piglit_display(void)<br>
if (use20syntax) {<br>
glStencilFuncSeparate(GL_FRONT, GL_ALWAYS, 0, ~0);<br>
glStencilFuncSeparate(GL_BACK, GL_ALWAYS, 0, ~0);<br>
+ glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_KEEP);<br>
+ glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR_WRAP);<br>
}<br>
else {<br>
glStencilFuncSeparateATI(GL_ALWAYS, GL_ALWAYS, 0, ~0);<br>
+ glStencilOpSeparateATI(GL_FRONT, GL_KEEP, GL_KEEP, GL_KEEP);<br>
+ glStencilOpSeparateATI(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR_WRAP);<br>
}<br>
- glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_KEEP);<br>
- glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_INCR_WRAP);<br>
<br>
glColor3f(0.9, 0.9, 0.9);<br>
for (i = 0 ; i < (max_stencil + 5) ; i++) {<br>
<font color="#888888">--<br>
1.7.0.4</font><br></blockquote></div><br>Nice catch. Pushed, thanks.<br><br>Marek<br>