[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [61088] trunk/blender/source/gameengine: BGE Rasterizer Cleanup: Removing KX_BlenderGL since it was mostly one-line functions used by KX_BlenderCanvas .

Mitchell Stokes mogurijin at gmail.com
Mon Nov 4 20:21:16 CET 2013


Revision: 61088
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=61088
Author:   moguri
Date:     2013-11-04 19:21:16 +0000 (Mon, 04 Nov 2013)
Log Message:
-----------
BGE Rasterizer Cleanup: Removing KX_BlenderGL since it was mostly one-line functions used by KX_BlenderCanvas. KX_BlenderCanvas now just calls those functions directly.

Modified Paths:
--------------
    trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
    trunk/blender/source/gameengine/BlenderRoutines/CMakeLists.txt
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
    trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    trunk/blender/source/gameengine/Converter/BlenderWorldInfo.cpp
    trunk/blender/source/gameengine/Converter/BlenderWorldInfo.h
    trunk/blender/source/gameengine/Converter/KX_ConvertSensors.cpp

Removed Paths:
-------------
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.h

Modified: trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2013-11-04 19:21:07 UTC (rev 61087)
+++ trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2013-11-04 19:21:16 UTC (rev 61088)
@@ -42,7 +42,6 @@
 
 #include "GL/glew.h"
 
-#include "KX_BlenderGL.h"
 #include "KX_BlenderCanvas.h"
 #include "KX_BlenderKeyboardDevice.h"
 #include "KX_BlenderMouseDevice.h"

Modified: trunk/blender/source/gameengine/BlenderRoutines/CMakeLists.txt
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/CMakeLists.txt	2013-11-04 19:21:07 UTC (rev 61087)
+++ trunk/blender/source/gameengine/BlenderRoutines/CMakeLists.txt	2013-11-04 19:21:16 UTC (rev 61088)
@@ -39,7 +39,6 @@
 	BL_KetsjiEmbedStart.cpp
 	BL_System.cpp
 	KX_BlenderCanvas.cpp
-	KX_BlenderGL.cpp
 	KX_BlenderInputDevice.cpp
 	KX_BlenderKeyboardDevice.cpp
 	KX_BlenderMouseDevice.cpp
@@ -47,7 +46,6 @@
 
 	BL_System.h
 	KX_BlenderCanvas.h
-	KX_BlenderGL.h
 	KX_BlenderInputDevice.h
 	KX_BlenderKeyboardDevice.h
 	KX_BlenderMouseDevice.h

Modified: trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp	2013-11-04 19:21:07 UTC (rev 61087)
+++ trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp	2013-11-04 19:21:16 UTC (rev 61088)
@@ -29,13 +29,33 @@
  *  \ingroup blroutines
  */
 
+#include <GL/glew.h>
 
+#include "MEM_guardedalloc.h"
+
 #include "KX_BlenderCanvas.h"
+
+#include "DNA_image_types.h"
+#include "DNA_scene_types.h"
 #include "DNA_screen_types.h"
 #include "DNA_windowmanager_types.h"
-#include <stdio.h>
+
+#include "BKE_image.h"
+#include "BKE_global.h"
+#include "BKE_main.h"
+
+#include "BLI_path_util.h"
+#include "BLI_string.h"
+
 #include <assert.h>
 
+extern "C" {
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+#include "WM_api.h"
+#include "wm_cursors.h"
+#include "wm_window.h"
+}
 
 KX_BlenderCanvas::KX_BlenderCanvas(wmWindowManager *wm, wmWindow *win, RAS_Rect &rect, struct ARegion *ar) :
 m_wm(wm),
@@ -63,17 +83,17 @@
 
 void KX_BlenderCanvas::SwapBuffers()
 {
-	BL_SwapBuffers(m_win);
+	wm_window_swap_buffers(m_win);
 }
 
 void KX_BlenderCanvas::SetSwapInterval(int interval)
 {
-	BL_SetSwapInterval(m_win, interval);
+	wm_window_set_swap_interval(m_win, interval);
 }
 
 int	KX_BlenderCanvas::GetSwapInterval()
 {
-	return BL_GetSwapInterval(m_win);
+	return wm_window_get_swap_interval(m_win);
 }
 
 void KX_BlenderCanvas::ResizeWindow(int width, int height)
@@ -96,7 +116,7 @@
 {
 	// in case of multi-window we need to ensure we are drawing to the correct
 	// window always, because it may change in window event handling
-	BL_MakeDrawable(m_wm, m_win);
+	wm_window_make_drawable(m_wm, m_win);
 	return true;
 }
 
@@ -247,17 +267,17 @@
 	{
 	case MOUSE_INVISIBLE:
 		{
-			BL_HideMouse(m_win);
+			WM_cursor_set(m_win, CURSOR_NONE);
 			break;
 		}
 	case MOUSE_WAIT:
 		{
-			BL_WaitMouse(m_win);
+			WM_cursor_set(m_win, CURSOR_WAIT);
 			break;
 		}
 	case MOUSE_NORMAL:
 		{
-			BL_NormalMouse(m_win);
+			WM_cursor_set(m_win, CURSOR_STD);
 			break;
 		}
 	default:
@@ -275,18 +295,71 @@
 	int winY = m_frame_rect.GetBottom();
 	int winH = m_frame_rect.GetHeight();
 	
-	BL_warp_pointer(m_win, winX + x, winY + (winH-y));
+	WM_cursor_warp(m_win, winX + x, winY + (winH-y));
 }
 
 
+/* get shot from frontbuffer sort of a copy from screendump.c */
+static unsigned int *screenshot(ScrArea *curarea, int *dumpsx, int *dumpsy)
+{
+	int x=0, y=0;
+	unsigned int *dumprect= NULL;
 
+	x= curarea->totrct.xmin;
+	y= curarea->totrct.ymin;
+	*dumpsx= curarea->totrct.xmax-x;
+	*dumpsy= curarea->totrct.ymax-y;
+
+	if (*dumpsx && *dumpsy) {
+
+		dumprect= (unsigned int *)MEM_mallocN(sizeof(int) * (*dumpsx) * (*dumpsy), "dumprect");
+		glReadBuffer(GL_FRONT);
+		glReadPixels(x, y, *dumpsx, *dumpsy, GL_RGBA, GL_UNSIGNED_BYTE, dumprect);
+		glFinish();
+		glReadBuffer(GL_BACK);
+	}
+
+	return dumprect;
+}
+
 void KX_BlenderCanvas::MakeScreenShot(const char *filename)
 {
 	ScrArea area_dummy= {0};
+	bScreen *screen = m_win->screen;
+	unsigned int *dumprect;
+	int dumpsx, dumpsy;
+
 	area_dummy.totrct.xmin = m_frame_rect.GetLeft();
 	area_dummy.totrct.xmax = m_frame_rect.GetRight();
 	area_dummy.totrct.ymin = m_frame_rect.GetBottom();
 	area_dummy.totrct.ymax = m_frame_rect.GetTop();
 
-	BL_MakeScreenShot(m_win->screen, &area_dummy, filename);
+	dumprect = screenshot(&area_dummy, &dumpsx, &dumpsy);
+
+	if (dumprect) {
+		/* initialize image file format data */
+		Scene *scene = (screen)? screen->scene: NULL;
+		ImageFormatData im_format;
+
+		if (scene)
+			im_format = scene->r.im_format;
+		else
+			BKE_imformat_defaults(&im_format);
+
+		/* create file path */
+		char path[FILE_MAX];
+		BLI_strncpy(path, filename, sizeof(path));
+		BLI_path_abs(path, G.main->name);
+		BKE_add_image_extension_from_type(path, im_format.imtype);
+
+		/* create and save imbuf */
+		ImBuf *ibuf = IMB_allocImBuf(dumpsx, dumpsy, 24, 0);
+		ibuf->rect = dumprect;
+
+		BKE_imbuf_write_as(ibuf, path, &im_format, false);
+
+		ibuf->rect = NULL;
+		IMB_freeImBuf(ibuf);
+		MEM_freeN(dumprect);
+	}
 }

Modified: trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h	2013-11-04 19:21:07 UTC (rev 61087)
+++ trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h	2013-11-04 19:21:16 UTC (rev 61088)
@@ -34,15 +34,11 @@
 
 #ifdef WIN32
 #include <windows.h>
-#endif 
+#endif
 
-#include "GL/glew.h"
-
 #include "RAS_ICanvas.h"
 #include "RAS_Rect.h"
 
-#include "KX_BlenderGL.h"
-
 #ifdef WITH_CXX_GUARDEDALLOC
 #include "MEM_guardedalloc.h"
 #endif
@@ -70,7 +66,7 @@
 	 * 
 	 * \param area The Blender ARegion to run the game within.
 	 */
-	KX_BlenderCanvas(struct wmWindowManager *wm, struct wmWindow* win, class RAS_Rect &rect, struct ARegion* ar);
+	KX_BlenderCanvas(struct wmWindowManager *wm, struct wmWindow* win, RAS_Rect &rect, struct ARegion* ar);
 	~KX_BlenderCanvas();
 
 		void 

Deleted: trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp	2013-11-04 19:21:07 UTC (rev 61087)
+++ trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp	2013-11-04 19:21:16 UTC (rev 61088)
@@ -1,185 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file gameengine/BlenderRoutines/KX_BlenderGL.cpp
- *  \ingroup blroutines
- */
-
-
-#include "KX_BlenderGL.h"
-
-/* 
- * This little block needed for linking to Blender... 
- */
-#ifdef WIN32
-#include <vector>
-#include "BLI_winstuff.h"
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "GL/glew.h"
-
-#include "MEM_guardedalloc.h"
-
-#include "BL_Material.h" // MAXTEX
-
-/* Data types encoding the game world: */
-#include "DNA_object_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_world_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_image_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_material_types.h"
-#include "DNA_space_types.h"
-#include "DNA_windowmanager_types.h"
-
-#include "BKE_global.h"
-#include "BKE_main.h"
-#include "BKE_bmfont.h"
-#include "BKE_image.h"
-
-#include "BLI_path_util.h"
-#include "BLI_string.h"
-
-extern "C" {
-#include "IMB_imbuf_types.h"
-#include "IMB_imbuf.h"
-#include "WM_api.h"
-#include "WM_types.h"
-#include "wm_event_system.h"
-#include "wm_cursors.h"
-#include "wm_window.h"
-#include "BLF_api.h"
-}
-
-/* end of blender block */
-void BL_warp_pointer(wmWindow *win, int x,int y)
-{
-	WM_cursor_warp(win, x, y);
-}
-
-void BL_SwapBuffers(wmWindow *win)
-{
-	wm_window_swap_buffers(win);
-}
-
-void BL_MakeDrawable(wmWindowManager *wm, wmWindow *win)
-{
-	wm_window_make_drawable(wm, win);
-}
-
-void BL_SetSwapInterval(struct wmWindow *win, int interval)
-{
-	wm_window_set_swap_interval(win, interval);
-}
-
-int BL_GetSwapInterval(struct wmWindow *win)
-{
-	return wm_window_get_swap_interval(win);
-}
-
-void BL_HideMouse(wmWindow *win)
-{
-	WM_cursor_set(win, CURSOR_NONE);
-}
-
-
-void BL_WaitMouse(wmWindow *win)
-{
-	WM_cursor_set(win, CURSOR_WAIT);
-}
-
-
-void BL_NormalMouse(wmWindow *win)
-{
-	WM_cursor_set(win, CURSOR_STD);
-}
-/* get shot from frontbuffer sort of a copy from screendump.c */
-static unsigned int *screenshot(ScrArea *curarea, int *dumpsx, int *dumpsy)
-{
-	int x=0, y=0;
-	unsigned int *dumprect= NULL;
-	
-	x= curarea->totrct.xmin;
-	y= curarea->totrct.ymin;
-	*dumpsx= curarea->totrct.xmax-x;
-	*dumpsy= curarea->totrct.ymax-y;
-
-	if (*dumpsx && *dumpsy) {
-		
-		dumprect= (unsigned int *)MEM_mallocN(sizeof(int) * (*dumpsx) * (*dumpsy), "dumprect");
-		glReadBuffer(GL_FRONT);
-		glReadPixels(x, y, *dumpsx, *dumpsy, GL_RGBA, GL_UNSIGNED_BYTE, dumprect);
-		glFinish();
-		glReadBuffer(GL_BACK);
-	}
-
-	return dumprect;
-}
-
-/* based on screendump.c::screenshot_exec */
-void BL_MakeScreenShot(bScreen *screen, ScrArea *curarea, const char *filename)
-{
-	unsigned int *dumprect;
-	int dumpsx, dumpsy;
-	
-	dumprect = screenshot(curarea, &dumpsx, &dumpsy);
-
-	if (dumprect) {
-		/* initialize image file format data */

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list