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

Reply via email to