remove workaround for [#34346], checked on applying this workaround for armatures too but it happens in more cases then I originally thought.
for now users of opensource Nouveau and ATI drivers can't use multiple windows, the bug needs to be fixed in the driver.
This commit is contained in:
@@ -61,15 +61,6 @@
|
|||||||
/* own include */
|
/* own include */
|
||||||
#include "interface_intern.h"
|
#include "interface_intern.h"
|
||||||
|
|
||||||
/* only for bug workaround [#34346] */
|
|
||||||
#if !defined(WIN32) && !defined(__APPLE__)
|
|
||||||
# define GPU_OSS_BUG_WOKAROUND
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GPU_OSS_BUG_WOKAROUND
|
|
||||||
# include "GPU_extensions.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int roundboxtype = UI_CNR_ALL;
|
static int roundboxtype = UI_CNR_ALL;
|
||||||
|
|
||||||
void uiSetRoundBox(int type)
|
void uiSetRoundBox(int type)
|
||||||
@@ -1245,7 +1236,6 @@ void ui_draw_but_COLORBAND(uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *rect)
|
|||||||
|
|
||||||
void ui_draw_but_NORMAL(uiBut *but, uiWidgetColors *wcol, rcti *rect)
|
void ui_draw_but_NORMAL(uiBut *but, uiWidgetColors *wcol, rcti *rect)
|
||||||
{
|
{
|
||||||
static int use_displist = -1;
|
|
||||||
static GLuint displist = 0;
|
static GLuint displist = 0;
|
||||||
int a, old[8];
|
int a, old[8];
|
||||||
GLfloat diff[4], diffn[4] = {1.0f, 1.0f, 1.0f, 1.0f};
|
GLfloat diff[4], diffn[4] = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||||
@@ -1294,20 +1284,12 @@ void ui_draw_but_NORMAL(uiBut *but, uiWidgetColors *wcol, rcti *rect)
|
|||||||
size = BLI_rcti_size_y(rect) / 200.f;
|
size = BLI_rcti_size_y(rect) / 200.f;
|
||||||
|
|
||||||
glScalef(size, size, size);
|
glScalef(size, size, size);
|
||||||
|
|
||||||
#ifdef GPU_OSS_BUG_WOKAROUND
|
|
||||||
if (use_displist == -1) {
|
|
||||||
use_displist = !GPU_type_matches(GPU_DEVICE_ANY, GPU_OS_UNIX, GPU_DRIVER_OPENSOURCE);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (displist == 0 || use_displist == 0) {
|
if (displist == 0) {
|
||||||
GLUquadricObj *qobj;
|
GLUquadricObj *qobj;
|
||||||
|
|
||||||
if (use_displist) {
|
displist = glGenLists(1);
|
||||||
displist = glGenLists(1);
|
glNewList(displist, GL_COMPILE);
|
||||||
glNewList(displist, GL_COMPILE_AND_EXECUTE);
|
|
||||||
}
|
|
||||||
|
|
||||||
qobj = gluNewQuadric();
|
qobj = gluNewQuadric();
|
||||||
gluQuadricDrawStyle(qobj, GLU_FILL);
|
gluQuadricDrawStyle(qobj, GLU_FILL);
|
||||||
@@ -1316,14 +1298,11 @@ void ui_draw_but_NORMAL(uiBut *but, uiWidgetColors *wcol, rcti *rect)
|
|||||||
glShadeModel(GL_FLAT);
|
glShadeModel(GL_FLAT);
|
||||||
gluDeleteQuadric(qobj);
|
gluDeleteQuadric(qobj);
|
||||||
|
|
||||||
if (use_displist) {
|
glEndList();
|
||||||
glEndList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
glCallList(displist);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
glCallList(displist);
|
||||||
|
|
||||||
/* restore */
|
/* restore */
|
||||||
glDisable(GL_LIGHTING);
|
glDisable(GL_LIGHTING);
|
||||||
glDisable(GL_CULL_FACE);
|
glDisable(GL_CULL_FACE);
|
||||||
|
Reference in New Issue
Block a user