[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