Hi Damien, I think AA is nice, but want to point out that it shouldn't be applied to the UI and controls themselves. The UI elements already have custom AA code, to make them look identical across different GFX cards, and to ensure they always render properly and quickly. Unfortunately your commit makes the UI widgets look very fuzzy, as your applying AA to something which is already smooth.
Here are two screenshots to illustrate this: http://www.reynish.com/files/blender25/UI_AA.png I'm all for having AA, but IMO it should be limited to the 3D view content (and perhaps other views too? Node Editor?) Cheers, -William On 6 Jan, 2010, at 12:42 PM, Damien Plisson wrote: > Revision: 25775 > > http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25775 > Author: damien78 > Date: 2010-01-06 12:42:52 +0100 (Wed, 06 Jan 2010) > > Log Message: > ----------- > OpenGL Anti-aliasing implementation for blender windows > > Added GHOST_TUns16 numOfAASamples parameter to GHOST_CreateWindow to specify > the number of AA samples (null if no AA wanted) > Implemented it in the cascade of GHOST classes. > > Full implementation currently done for OSX/Cocoa, stubs for other OSes. > Moguri : it's ready for your win32 implementation ! > > Note that fallback to a non AA window (if gfx card doesn't support AA) is > done inside GHOST OS specific layer, so that blender windowmanager still gets > its window created properly. > > Modified Paths: > -------------- > trunk/blender/intern/ghost/GHOST_C-api.h > trunk/blender/intern/ghost/GHOST_ISystem.h > trunk/blender/intern/ghost/intern/GHOST_C-api.cpp > trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.cpp > trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.h > trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h > trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm > trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp > trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h > trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp > trunk/blender/intern/ghost/intern/GHOST_SystemX11.h > trunk/blender/intern/ghost/intern/GHOST_Window.cpp > trunk/blender/intern/ghost/intern/GHOST_Window.h > trunk/blender/intern/ghost/intern/GHOST_WindowCarbon.cpp > trunk/blender/intern/ghost/intern/GHOST_WindowCarbon.h > trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.h > trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm > trunk/blender/intern/ghost/intern/GHOST_WindowWin32.cpp > trunk/blender/intern/ghost/intern/GHOST_WindowWin32.h > trunk/blender/intern/ghost/intern/GHOST_WindowX11.cpp > trunk/blender/intern/ghost/intern/GHOST_WindowX11.h > trunk/blender/source/blender/windowmanager/intern/wm_window.c > > Modified: trunk/blender/intern/ghost/GHOST_C-api.h > =================================================================== > --- trunk/blender/intern/ghost/GHOST_C-api.h 2010-01-06 11:38:58 UTC (rev > 25774) > +++ trunk/blender/intern/ghost/GHOST_C-api.h 2010-01-06 11:42:52 UTC (rev > 25775) > @@ -162,6 +162,8 @@ > * @param height The height the window. > * @param state The state of the window when opened. > * @param type The type of drawing context installed in this window. > + * @param stereoVisual Stereo visual for quad buffered stereo. > + * @param numOfAASamples Number of samples used for AA (zero if no AA) > * @return A handle to the new window ( == NULL if creation failed). > */ > extern GHOST_WindowHandle GHOST_CreateWindow(GHOST_SystemHandle systemhandle, > @@ -172,7 +174,8 @@ > GHOST_TUns32 height, > GHOST_TWindowState state, > GHOST_TDrawingContextType type, > - const int stereoVisual); > + const int stereoVisual, > + const GHOST_TUns16 numOfAASamples); > > /** > * Returns the window user data. > > Modified: trunk/blender/intern/ghost/GHOST_ISystem.h > =================================================================== > --- trunk/blender/intern/ghost/GHOST_ISystem.h 2010-01-06 11:38:58 UTC > (rev 25774) > +++ trunk/blender/intern/ghost/GHOST_ISystem.h 2010-01-06 11:42:52 UTC > (rev 25775) > @@ -216,14 +216,15 @@ > * Create a new window. > * The new window is added to the list of windows managed. > * Never explicitly delete the window, use disposeWindow() instead. > - * @param title The name of the window (displayed in the title > bar of the window if the OS supports it). > - * @param left The coordinate of the left edge of the > window. > - * @param top The coordinate of the top edge of the > window. > - * @param width The width the window. > - * @param height The height the window. > - * @param state The state of the window when opened. > - * @param type The type of drawing context installed > in this window. > + * @param title The name of the window > (displayed in the title bar of the window if the OS supports it). > + * @param left The coordinate of the left edge > of the window. > + * @param top The coordinate of the > top edge of the window. > + * @param width The width the window. > + * @param height The height the window. > + * @param state The state of the window when > opened. > + * @param type The type of drawing context > installed in this window. > * @param stereoVisual Create a stereo visual for quad > buffered stereo. > + * @param numOfAASamples Number of samples used for AA (zero if > no AA) > * @param parentWindow Parent (embedder) window > * @return The new window (or 0 if creation failed). > */ > @@ -231,7 +232,8 @@ > const STR_String& title, > GHOST_TInt32 left, GHOST_TInt32 top, GHOST_TUns32 width, > GHOST_TUns32 height, > GHOST_TWindowState state, GHOST_TDrawingContextType type, > - const bool stereoVisual, > + const bool stereoVisual = false, > + const GHOST_TUns16 numOfAASamples = 0, > const GHOST_TEmbedderWindowID parentWindow = 0) = 0; > > /** > > Modified: trunk/blender/intern/ghost/intern/GHOST_C-api.cpp > =================================================================== > --- trunk/blender/intern/ghost/intern/GHOST_C-api.cpp 2010-01-06 11:38:58 UTC > (rev 25774) > +++ trunk/blender/intern/ghost/intern/GHOST_C-api.cpp 2010-01-06 11:42:52 UTC > (rev 25775) > @@ -140,7 +140,8 @@ > > GHOST_TUns32 height, > > GHOST_TWindowState state, > > GHOST_TDrawingContextType type, > - const > int stereoVisual) > + const > int stereoVisual, > + const > GHOST_TUns16 numOfAASamples) > { > GHOST_ISystem* system = (GHOST_ISystem*) systemhandle; > bool bstereoVisual; > @@ -151,7 +152,7 @@ > bstereoVisual = false; > > return (GHOST_WindowHandle) system->createWindow(title, left, top, > width, height, > - state, type, bstereoVisual); > + state, type, bstereoVisual, numOfAASamples); > } > > GHOST_TUserDataPtr GHOST_GetWindowUserData(GHOST_WindowHandle windowhandle) > > Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.cpp > =================================================================== > --- trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.cpp 2010-01-06 > 11:38:58 UTC (rev 25774) > +++ trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.cpp 2010-01-06 > 11:42:52 UTC (rev 25775) > @@ -402,6 +402,7 @@ > GHOST_TWindowState state, > GHOST_TDrawingContextType type, > bool stereoVisual, > + const GHOST_TUns16 numOfAASamples, > const GHOST_TEmbedderWindowID parentWindow > ) > { > > Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.h > =================================================================== > --- trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.h 2010-01-06 > 11:38:58 UTC (rev 25774) > +++ trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.h 2010-01-06 > 11:42:52 UTC (rev 25775) > @@ -115,6 +115,7 @@ > GHOST_TWindowState state, > GHOST_TDrawingContextType type, > const bool stereoVisual, > + const GHOST_TUns16 numOfAASamples = 0, > const GHOST_TEmbedderWindowID parentWindow = 0 > ); > > > Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h > =================================================================== > --- trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h 2010-01-06 > 11:38:58 UTC (rev 25774) > +++ trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h 2010-01-06 > 11:42:52 UTC (rev 25775) > @@ -93,13 +93,15 @@ > * Create a new window. > * The new window is added to the list of windows managed. > * Never explicitly delete the window, use disposeWindow() instead. > - * @param title The name of the window (displayed in the title > bar of the window if the OS supports it). > - * @param left The coordinate of the left edge of the window. > - * @param top The coordinate of the top edge of the > window. > - * @param width The width the window. > - * @param height The height the window. > - * @param state The state of the window when opened. > - * @param type The type of drawing context installed in this > window. > + * @param title The name of the window > (displayed in the title bar of the window if the OS supports it). > + * @param left The coordinate of the left edge > of the window. > + * @param top The coordinate of the > top edge of the window. > + * @param width The width the window. > + * @param height The height the window. > + * @param state The state of the window when > opened. > + * @param type The type of drawing context > installed in this window. > + * @param stereoVisual Stereo visual for quad buffered stereo. > + * @param numOfAASamples Number of samples used for AA (zero if > no AA) > * @param parentWindow Parent (embedder) window > * @return The new window (or 0 if creation failed). > */ > @@ -111,7 +113,8 @@ > GHOST_TUns32 height, > GHOST_TWindowState state, > GHOST_TDrawingContextType type, > - const bool stereoVisual, > + const bool stereoVisual = false, > + const GHOST_TUns16 numOfAASamples = 0, > const GHOST_TEmbedderWindowID parentWindow = 0 > ); > > > Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm > =================================================================== > --- trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm 2010-01-06 > 11:38:58 UTC (rev 25774) > +++ trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm 2010-01-06 > 11:42:52 UTC (rev 25775) > @@ -657,6 +657,7 @@ > GHOST_TWindowState state, > GHOST_TDrawingContextType type, > bool stereoVisual, > + const GHOST_TUns16 numOfAASamples, > const GHOST_TEmbedderWindowID parentWindow > ) > { > @@ -672,7 +673,7 @@ > left = left > contentRect.origin.x ? left : contentRect.origin.x; > top = top > contentRect.origin.y ? top : contentRect.origin.y; > > - window = new GHOST_WindowCocoa (this, title, left, top, width, height, > state, type); > + window = new GHOST_WindowCocoa (this, title, left, top, width, height, > state, type, stereoVisual, numOfAASamples); > > if (window) { > if (window->getValid()) { > > Modified: trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp > =================================================================== > --- trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp 2010-01-06 > 11:38:58 UTC (rev 25774) > +++ trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp 2010-01-06 > 11:42:52 UTC (rev 25775) > @@ -190,7 +190,7 @@ > const STR_String& title, > GHOST_TInt32 left, GHOST_TInt32 top, GHOST_TUns32 width, GHOST_TUns32 > height, > GHOST_TWindowState state, GHOST_TDrawingContextType type, > - bool stereoVisual, const GHOST_TEmbedderWindowID parentWindow ) > + bool stereoVisual, const GHOST_TUns16 numOfAASamples, const > GHOST_TEmbedderWindowID parentWindow ) > { > GHOST_Window* window = 0; > window = new GHOST_WindowWin32 (this, title, left, top, width, height, > state, type, stereoVisual); > > Modified: trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h > =================================================================== > --- trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h 2010-01-06 > 11:38:58 UTC (rev 25774) > +++ trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h 2010-01-06 > 11:42:52 UTC (rev 25775) > @@ -110,6 +110,8 @@ > * @param height The height the window. > * @param state The state of the window when opened. > * @param type The type of drawing context installed in this > window. > + * @param stereoVisual Stereo visual for quad buffered stereo. > + * @param numOfAASamples Number of samples used for AA (zero if > no AA) > * @param parentWindow Parent (embedder) window > * @return The new window (or 0 if creation failed). > */ > @@ -117,7 +119,9 @@ > const STR_String& title, > GHOST_TInt32 left, GHOST_TInt32 top, GHOST_TUns32 width, > GHOST_TUns32 height, > GHOST_TWindowState state, GHOST_TDrawingContextType type, > - const bool stereoVisual, const GHOST_TEmbedderWindowID > parentWindow = 0 ); > + const bool stereoVisual = false, > + const GHOST_TUns16 numOfAASamples = 0, > + const GHOST_TEmbedderWindowID parentWindow = 0 ); > > > /*************************************************************************************** > ** Event management functionality > > Modified: trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp > =================================================================== > --- trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp 2010-01-06 > 11:38:58 UTC (rev 25774) > +++ trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp 2010-01-06 > 11:42:52 UTC (rev 25775) > @@ -228,6 +228,8 @@ > * @param height The height the window. > * @param state The state of the window when opened. > * @param type The type of drawing context installed in this > window. > > @@ Diff output truncated at 10240 characters. @@ > > _______________________________________________ > Bf-blender-cvs mailing list > bf-blender-...@blender.org > http://lists.blender.org/mailman/listinfo/bf-blender-cvs _______________________________________________ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers