* workaround gamma bug in 2D views and texture browser with fresh nvidia drivers
This commit is contained in:
parent
6e42edd1cb
commit
6c9870f941
|
|
@ -25,7 +25,7 @@
|
||||||
typedef struct _GtkWidget GtkWidget;
|
typedef struct _GtkWidget GtkWidget;
|
||||||
typedef int gint;
|
typedef int gint;
|
||||||
typedef gint gboolean;
|
typedef gint gboolean;
|
||||||
|
#define NV_DRIVER_GAMMA_BUG 1 //! todo remove as soon, as driver will be fixed
|
||||||
GtkWidget* glwidget_new( gboolean zbuffer );
|
GtkWidget* glwidget_new( gboolean zbuffer );
|
||||||
void glwidget_swap_buffers( GtkWidget* widget );
|
void glwidget_swap_buffers( GtkWidget* widget );
|
||||||
gboolean glwidget_make_current( GtkWidget* widget );
|
gboolean glwidget_make_current( GtkWidget* widget );
|
||||||
|
|
|
||||||
|
|
@ -2197,7 +2197,11 @@ GtkWidget* TextureBrowser_constructWindow( GtkWindow* toplevel ){
|
||||||
widget_set_visible( g_TextureBrowser.m_texture_scroll, g_TextureBrowser.m_showTextureScrollbar );
|
widget_set_visible( g_TextureBrowser.m_texture_scroll, g_TextureBrowser.m_showTextureScrollbar );
|
||||||
}
|
}
|
||||||
{ // gl_widget
|
{ // gl_widget
|
||||||
|
#if NV_DRIVER_GAMMA_BUG
|
||||||
|
g_TextureBrowser.m_gl_widget = glwidget_new( TRUE );
|
||||||
|
#else
|
||||||
g_TextureBrowser.m_gl_widget = glwidget_new( FALSE );
|
g_TextureBrowser.m_gl_widget = glwidget_new( FALSE );
|
||||||
|
#endif
|
||||||
gtk_widget_ref( g_TextureBrowser.m_gl_widget );
|
gtk_widget_ref( g_TextureBrowser.m_gl_widget );
|
||||||
|
|
||||||
gtk_widget_set_events( g_TextureBrowser.m_gl_widget, GDK_DESTROY | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_SCROLL_MASK );
|
gtk_widget_set_events( g_TextureBrowser.m_gl_widget, GDK_DESTROY | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_SCROLL_MASK );
|
||||||
|
|
|
||||||
|
|
@ -58,12 +58,10 @@
|
||||||
#include "gtkutil/filechooser.h"
|
#include "gtkutil/filechooser.h"
|
||||||
#include "gtkmisc.h"
|
#include "gtkmisc.h"
|
||||||
#include "select.h"
|
#include "select.h"
|
||||||
#include "csg.h"
|
|
||||||
#include "brushmanip.h"
|
#include "brushmanip.h"
|
||||||
#include "selection.h"
|
#include "selection.h"
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "camwindow.h"
|
#include "camwindow.h"
|
||||||
#include "texwindow.h"
|
|
||||||
#include "mainframe.h"
|
#include "mainframe.h"
|
||||||
#include "preferences.h"
|
#include "preferences.h"
|
||||||
#include "commands.h"
|
#include "commands.h"
|
||||||
|
|
@ -641,7 +639,11 @@ gboolean xywnd_wheel_scroll( GtkWidget* widget, GdkEventScroll* event, XYWnd* xy
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean xywnd_size_allocate( GtkWidget* widget, GtkAllocation* allocation, XYWnd* xywnd ){
|
gboolean xywnd_size_allocate( GtkWidget* widget, GtkAllocation* allocation, XYWnd* xywnd ){
|
||||||
|
#if NV_DRIVER_GAMMA_BUG
|
||||||
|
xywnd->fbo_get()->reset( allocation->width, allocation->height, g_xywindow_globals_private.m_MSAA, true );
|
||||||
|
#else
|
||||||
xywnd->fbo_get()->reset( allocation->width, allocation->height, g_xywindow_globals_private.m_MSAA, false );
|
xywnd->fbo_get()->reset( allocation->width, allocation->height, g_xywindow_globals_private.m_MSAA, false );
|
||||||
|
#endif
|
||||||
xywnd->m_nWidth = allocation->width;
|
xywnd->m_nWidth = allocation->width;
|
||||||
xywnd->m_nHeight = allocation->height;
|
xywnd->m_nHeight = allocation->height;
|
||||||
xywnd->updateProjection();
|
xywnd->updateProjection();
|
||||||
|
|
@ -669,7 +671,11 @@ void XYWnd_CameraMoved( XYWnd& xywnd ){
|
||||||
}
|
}
|
||||||
|
|
||||||
XYWnd::XYWnd() :
|
XYWnd::XYWnd() :
|
||||||
|
#if NV_DRIVER_GAMMA_BUG
|
||||||
|
m_gl_widget( glwidget_new( TRUE ) ),
|
||||||
|
#else
|
||||||
m_gl_widget( glwidget_new( FALSE ) ),
|
m_gl_widget( glwidget_new( FALSE ) ),
|
||||||
|
#endif
|
||||||
m_deferredDraw( WidgetQueueDrawCaller( *m_gl_widget ) ),
|
m_deferredDraw( WidgetQueueDrawCaller( *m_gl_widget ) ),
|
||||||
m_deferredOverlayDraw( ReferenceCaller<XYWnd, xy_update_overlay>( *this ) ),
|
m_deferredOverlayDraw( ReferenceCaller<XYWnd, xy_update_overlay>( *this ) ),
|
||||||
m_deferred_motion( xywnd_motion, this ),
|
m_deferred_motion( xywnd_motion, this ),
|
||||||
|
|
@ -2459,7 +2465,11 @@ void ToggleShowGrid(){
|
||||||
void MSAAImport( int value ){
|
void MSAAImport( int value ){
|
||||||
g_xywindow_globals_private.m_MSAA = value ? 1 << value : value;
|
g_xywindow_globals_private.m_MSAA = value ? 1 << value : value;
|
||||||
g_pParentWnd->forEachXYWnd( []( XYWnd* xywnd ){
|
g_pParentWnd->forEachXYWnd( []( XYWnd* xywnd ){
|
||||||
|
#if NV_DRIVER_GAMMA_BUG
|
||||||
|
xywnd->fbo_get()->reset( xywnd->Width(), xywnd->Height(), g_xywindow_globals_private.m_MSAA, true );
|
||||||
|
#else
|
||||||
xywnd->fbo_get()->reset( xywnd->Width(), xywnd->Height(), g_xywindow_globals_private.m_MSAA, false );
|
xywnd->fbo_get()->reset( xywnd->Width(), xywnd->Height(), g_xywindow_globals_private.m_MSAA, false );
|
||||||
|
#endif
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
typedef FreeCaller1<int, MSAAImport> MSAAImportCaller;
|
typedef FreeCaller1<int, MSAAImport> MSAAImportCaller;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user