[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17517] branches/soc-2008-mxcurioni/intern /ghost/intern: Added changes for enabling OpenGL accumulation buffer to implement antialiasing

Tamito Kajiyama rd6t-kjym at asahi-net.or.jp
Thu Nov 20 21:41:07 CET 2008


Revision: 17517
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17517
Author:   kjym3
Date:     2008-11-20 21:41:07 +0100 (Thu, 20 Nov 2008)

Log Message:
-----------
Added changes for enabling OpenGL accumulation buffer to implement antialiasing
in the Freestyle renderer.

Modified Paths:
--------------
    branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowCarbon.cpp
    branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowWin32.cpp
    branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowX11.cpp

Modified: branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowCarbon.cpp
===================================================================
--- branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowCarbon.cpp	2008-11-20 08:25:01 UTC (rev 17516)
+++ branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowCarbon.cpp	2008-11-20 20:41:07 UTC (rev 17517)
@@ -46,22 +46,34 @@
 const GHOST_TInt32 GHOST_WindowCarbon::s_sizeRectSize = 16;
 #endif //GHOST_DRAW_CARBON_GUTTER
 
-static const GLint sPreferredFormatWindow[8] = {
+static const GLint sPreferredFormatWindow[16] = {
 AGL_RGBA,
 AGL_DOUBLEBUFFER,	
 AGL_ACCELERATED,
 AGL_DEPTH_SIZE,		32,
 AGL_AUX_BUFFERS,     1,
+#if 1 // FRS_antialiasing
+AGL_ACCUM_RED_SIZE,     16,
+AGL_ACCUM_GREEN_SIZE,   16,
+AGL_ACCUM_BLUE_SIZE,    16,
+AGL_ACCUM_ALPHA_SIZE,   16,
+#endif
 AGL_NONE,
 };
 
-static const GLint sPreferredFormatFullScreen[9] = {
+static const GLint sPreferredFormatFullScreen[17] = {
 AGL_RGBA,
 AGL_DOUBLEBUFFER,
 AGL_ACCELERATED,
 AGL_FULLSCREEN,
 AGL_DEPTH_SIZE,		32,
 AGL_AUX_BUFFERS,     1,
+#if 1 // FRS_antialiasing
+AGL_ACCUM_RED_SIZE,     16,
+AGL_ACCUM_GREEN_SIZE,   16,
+AGL_ACCUM_BLUE_SIZE,    16,
+AGL_ACCUM_ALPHA_SIZE,   16,
+#endif
 AGL_NONE,
 };
 

Modified: branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowWin32.cpp
===================================================================
--- branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowWin32.cpp	2008-11-20 08:25:01 UTC (rev 17516)
+++ branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowWin32.cpp	2008-11-20 20:41:07 UTC (rev 17517)
@@ -84,7 +84,11 @@
 	0, 0, 0, 0, 0, 0,               /* color bits (ignored) */
 	0,                              /* no alpha buffer */
 	0,                              /* alpha bits (ignored) */
+#if 1 // FRS_antialiasing
+	1,                              /* accumulation buffer */
+#else
 	0,                              /* no accumulation buffer */
+#endif
 	0, 0, 0, 0,                     /* accum bits (ignored) */
 	32,                             /* depth buffer */
 	0,                              /* no stencil buffer */
@@ -491,6 +495,10 @@
 		// For debugging only: retrieve the pixel format chosen
 		PIXELFORMATDESCRIPTOR preferredFormat;
 		::DescribePixelFormat(m_hDC, iPixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &preferredFormat);
+#if 1 // FRS_antialiasing
+		if (preferredFormat.cAccumBits > 0)
+			printf("Accumulation buffer enabled\n");
+#endif
 		// Create the context
 		m_hGlRc = ::wglCreateContext(m_hDC);
 		if (m_hGlRc) {
@@ -829,6 +837,9 @@
 		!(pfd.dwFlags & PFD_DRAW_TO_WINDOW) ||
 		!(pfd.dwFlags & PFD_DOUBLEBUFFER) || /* Blender _needs_ this */
 		( pfd.cDepthBits <= 8 ) ||
+#if 1 // FRS_antialiasing
+		!pfd.cAccumBits || /* for antialiasing in Freestyle */
+#endif
 		!(pfd.iPixelType == PFD_TYPE_RGBA) )
 		return 0;
 	

Modified: branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowX11.cpp
===================================================================
--- branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowX11.cpp	2008-11-20 08:25:01 UTC (rev 17516)
+++ branches/soc-2008-mxcurioni/intern/ghost/intern/GHOST_WindowX11.cpp	2008-11-20 20:41:07 UTC (rev 17517)
@@ -168,6 +168,12 @@
 	attributes[i++] = GLX_BLUE_SIZE;  attributes[i++] = 1;
 	attributes[i++] = GLX_GREEN_SIZE; attributes[i++] = 1;
 	attributes[i++] = GLX_DEPTH_SIZE; attributes[i++] = 1;
+#if 1 // FRS_antialiasing
+	attributes[i++] = GLX_ACCUM_RED_SIZE;   attributes[i++] = 1;
+	attributes[i++] = GLX_ACCUM_GREEN_SIZE; attributes[i++] = 1;
+	attributes[i++] = GLX_ACCUM_BLUE_SIZE;  attributes[i++] = 1;
+	attributes[i++] = GLX_ACCUM_ALPHA_SIZE; attributes[i++] = 1;
+#endif
 	attributes[i] = None;
 	
 	m_visual = glXChooseVisual(m_display, DefaultScreen(m_display), attributes);





More information about the Bf-blender-cvs mailing list