From 16340dfe1235391bb675a633a099c17af3a731c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Tue, 29 May 2007 04:34:09 +0000 Subject: adding the initial patch updated to 2.44 in ndof branch notes : it compiles but is non functional lacks the platform specific changes in ghost ( i cant test windows) lacks the code for plug-in. the platform specific code will be added when we sync with Ettore work the plug-in itself cannot be added here --- intern/ghost/GHOST_C-api.h | 13 ++++ intern/ghost/GHOST_ISystem.h | 14 ++++ intern/ghost/GHOST_Types.h | 14 ++++ intern/ghost/intern/GHOST_C-api.cpp | 12 ++++ intern/ghost/intern/GHOST_EventNDOF.h | 69 +++++++++++++++++++ intern/ghost/intern/GHOST_NDOFManager.cpp | 107 ++++++++++++++++++++++++++++++ intern/ghost/intern/GHOST_NDOFManager.h | 39 +++++++++++ intern/ghost/intern/GHOST_System.cpp | 25 ++++++- intern/ghost/intern/GHOST_System.h | 33 +++++++++ 9 files changed, 325 insertions(+), 1 deletion(-) create mode 100644 intern/ghost/intern/GHOST_EventNDOF.h create mode 100644 intern/ghost/intern/GHOST_NDOFManager.cpp create mode 100644 intern/ghost/intern/GHOST_NDOFManager.h (limited to 'intern') diff --git a/intern/ghost/GHOST_C-api.h b/intern/ghost/GHOST_C-api.h index 4c4094409dd..d5fc87c16f6 100644 --- a/intern/ghost/GHOST_C-api.h +++ b/intern/ghost/GHOST_C-api.h @@ -265,6 +265,19 @@ extern GHOST_TSuccess GHOST_AddEventConsumer(GHOST_SystemHandle systemhandle, GHOST_EventConsumerHandle consumerhandle); +/*************************************************************************************** + ** N-degree of freedom device management functionality + ***************************************************************************************/ + +/** +* Open N-degree of freedom devices + */ +extern void GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, + GHOST_WindowHandle windowhandle, + GHOST_NDOFLibraryInit_fp setNdofLibraryInit, + GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, + GHOST_NDOFEventHandler_fp setNdofEventHandler); /*************************************************************************************** ** Cursor management functionality diff --git a/intern/ghost/GHOST_ISystem.h b/intern/ghost/GHOST_ISystem.h index dffd81bdb13..9c0cef2b4f0 100644 --- a/intern/ghost/GHOST_ISystem.h +++ b/intern/ghost/GHOST_ISystem.h @@ -295,6 +295,20 @@ public: */ virtual GHOST_TSuccess addEventConsumer(GHOST_IEventConsumer* consumer) = 0; + /*************************************************************************************** + ** N-degree of freedom device management functionality + ***************************************************************************************/ + + /** + * Starts the N-degree of freedom device manager + */ + virtual void openNDOF(GHOST_IWindow*, + GHOST_NDOFLibraryInit_fp setNdofLibraryInit, + GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, + GHOST_NDOFEventHandler_fp setNdofEventHandler) = 0; + + /*************************************************************************************** ** Cursor management functionality ***************************************************************************************/ diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h index d5575354370..c0f7245eff1 100644 --- a/intern/ghost/GHOST_Types.h +++ b/intern/ghost/GHOST_Types.h @@ -133,6 +133,8 @@ typedef enum { GHOST_kEventButtonUp, /// Mouse button event GHOST_kEventWheel, /// Mouse wheel event + GHOST_kEventNDOFMotion, /// N degree of freedom device motion event + GHOST_kEventKeyDown, GHOST_kEventKeyUp, // GHOST_kEventKeyAuto, @@ -336,6 +338,18 @@ typedef struct { GHOST_TInt32 z; } GHOST_TEventWheelData; +typedef int (*GHOST_NDOFLibraryInit_fp)(); +typedef void (*GHOST_NDOFLibraryShutdown_fp)(void* deviceHandle); +typedef void* (*GHOST_NDOFDeviceOpen_fp)(void* platformData); +typedef int (*GHOST_NDOFEventHandler_fp)(float* result7, void* deviceHandle, unsigned int message, unsigned int* wParam, unsigned long* lParam); + +typedef struct { + /** N-degree of freedom device data */ + float tx, ty, tz; /** -x left, +y up, +z forward */ + float rx, ry, rz; + float dt; +} GHOST_TEventNDOFData; + typedef struct { /** The key code. */ GHOST_TKey key; diff --git a/intern/ghost/intern/GHOST_C-api.cpp b/intern/ghost/intern/GHOST_C-api.cpp index c2b8eca9573..cbecb49c80b 100644 --- a/intern/ghost/intern/GHOST_C-api.cpp +++ b/intern/ghost/intern/GHOST_C-api.cpp @@ -259,6 +259,18 @@ GHOST_TSuccess GHOST_AddEventConsumer(GHOST_SystemHandle systemhandle, GHOST_Eve return system->addEventConsumer((GHOST_CallbackEventConsumer*)consumerhandle); } +void GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, GHOST_WindowHandle windowhandle, + GHOST_NDOFLibraryInit_fp setNdofLibraryInit, + GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, + GHOST_NDOFEventHandler_fp setNdofEventHandler) +{ + GHOST_ISystem* system = (GHOST_ISystem*) systemhandle; + + system->openNDOF((GHOST_IWindow*) windowhandle, + setNdofLibraryInit, setNdofLibraryShutdown, setNdofDeviceOpen, setNdofEventHandler); +} + GHOST_TStandardCursor GHOST_GetCursorShape(GHOST_WindowHandle windowhandle) diff --git a/intern/ghost/intern/GHOST_EventNDOF.h b/intern/ghost/intern/GHOST_EventNDOF.h new file mode 100644 index 00000000000..1eadebd92ac --- /dev/null +++ b/intern/ghost/intern/GHOST_EventNDOF.h @@ -0,0 +1,69 @@ +/** + * $Id: GHOST_EventNdof.h,v 1.6 2002/12/28 22:26:45 maarten Exp $ + * ***** BEGIN GPL/BL DUAL 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. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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/BL DUAL LICENSE BLOCK ***** + */ +/** + * @file GHOST_EventNdof.h + * Declaration of GHOST_EventNdof class. + */ + +#ifndef _GHOST_EVENT_NDOF_H_ +#define _GHOST_EVENT_NDOF_H_ + +#include "GHOST_Event.h" + +/** + * N-degree of freedom device event. + */ +class GHOST_EventNDOF : public GHOST_Event +{ +public: + /** + * Constructor. + * @param msec The time this event was generated. + * @param type The type of this event. + * @param x The x-coordinate of the location the cursor was at at the time of the event. + * @param y The y-coordinate of the location the cursor was at at the time of the event. + */ + GHOST_EventNDOF(GHOST_TUns64 msec, GHOST_TEventType type, GHOST_IWindow* window, + GHOST_TEventNDOFData data) + : GHOST_Event(msec, type, window) + { + m_ndofEventData = data; + m_data = &m_ndofEventData; + } + +protected: + /** translation & rotation from the device. */ + GHOST_TEventNDOFData m_ndofEventData; +}; + + +#endif // _GHOST_EVENT_NDOF_H_ + diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp new file mode 100644 index 00000000000..86a9b56c7cc --- /dev/null +++ b/intern/ghost/intern/GHOST_NDOFManager.cpp @@ -0,0 +1,107 @@ + +// Insert Blender compatible license here :-) + +// note: an implementation is currently only provided for Windows, but designed to be easy to move to Linux, etc. + +/** + + To use this implemenation, you must specify the #define WITH_SPACEBALL for the ghost library. + Only this cpp file is affected by the macro, the header file and everything else are independent + of the spaceball libraries. + + The 3dXWare SDK is available from the tab on the left side of - + http://www.3dconnexion.com/support/4a.php + + The SDK is necessary to build this file with WITH_SPACEBALL defined. + + For this stuff to work, siappdll.dll and spwini.dll must be in the executable path of blender + + */ + + +#include "GHOST_NDOFManager.h" +//#include "GHOST_WindowWin32.h" + + + + + +namespace +{ + GHOST_NDOFLibraryInit_fp ndofLibraryInit = 0; + GHOST_NDOFLibraryShutdown_fp ndofLibraryShutdown = 0; + GHOST_NDOFDeviceOpen_fp ndofDeviceOpen = 0; + GHOST_NDOFEventHandler_fp ndofEventHandler = 0; +} + + +//typedef enum SpwRetVal (WINAPI *PFNSI_INIT) (void); + +GHOST_NDOFManager::GHOST_NDOFManager() +{ + m_DeviceHandle = 0; + + // discover the API from the plugin + ndofLibraryInit = 0; + ndofLibraryShutdown = 0; + ndofDeviceOpen = 0; + ndofEventHandler = 0; +} + +GHOST_NDOFManager::~GHOST_NDOFManager() +{ + if (ndofLibraryShutdown) + ndofLibraryShutdown(m_DeviceHandle); + + m_DeviceHandle = 0; +} + + +void +GHOST_NDOFManager::deviceOpen(GHOST_IWindow* window, + GHOST_NDOFLibraryInit_fp setNdofLibraryInit, + GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, + GHOST_NDOFEventHandler_fp setNdofEventHandler) +{ + ndofLibraryInit = setNdofLibraryInit; + ndofLibraryShutdown = setNdofLibraryShutdown; + ndofDeviceOpen = setNdofDeviceOpen; + ndofEventHandler = setNdofEventHandler; + + if (ndofLibraryInit) + { + ndofLibraryInit(); + } +/* + if (ndofDeviceOpen) + { + GHOST_WindowWin32* win32 = (GHOST_WindowWin32*) window; // GHOST_IWindow doesn't have RTTI... + if (win32 != 0) + { + m_DeviceHandle = ndofDeviceOpen(win32->getHWND()); + } + } + */ +} + + + +GHOST_TEventNDOFData* +GHOST_NDOFManager::handle(unsigned int message, unsigned int* wParam, unsigned long* lParam) +{ + static GHOST_TEventNDOFData sbdata; + int handled = 0; + if (ndofEventHandler && m_DeviceHandle != 0) + { + handled = ndofEventHandler(&sbdata.tx, m_DeviceHandle, message, wParam, lParam); + } + return handled ? &sbdata : 0; +} + + +bool +GHOST_NDOFManager::available() +{ + return m_DeviceHandle != 0; +} diff --git a/intern/ghost/intern/GHOST_NDOFManager.h b/intern/ghost/intern/GHOST_NDOFManager.h new file mode 100644 index 00000000000..69e7f8e25f0 --- /dev/null +++ b/intern/ghost/intern/GHOST_NDOFManager.h @@ -0,0 +1,39 @@ + +#ifndef _GHOST_NDOFMANAGER_H_ +#define _GHOST_NDOFMANAGER_H_ + +#include "GHOST_System.h" +#include "GHOST_IWindow.h" + + + +class GHOST_NDOFManager +{ +public: + /** + * Constructor. + */ + GHOST_NDOFManager(); + + /** + * Destructor. + */ + virtual ~GHOST_NDOFManager(); + + void deviceOpen(GHOST_IWindow* window, + GHOST_NDOFLibraryInit_fp setNdofLibraryInit, + GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, + GHOST_NDOFEventHandler_fp setNdofEventHandler); + + bool available(); + + /* to do: abstract for Linux, MacOS, etc. */ + GHOST_TEventNDOFData* handle(unsigned int message, unsigned int* wparam, unsigned long* lparam); + +protected: + void* m_DeviceHandle; +}; + + +#endif diff --git a/intern/ghost/intern/GHOST_System.cpp b/intern/ghost/intern/GHOST_System.cpp index d91658787b9..7daeca9566b 100644 --- a/intern/ghost/intern/GHOST_System.cpp +++ b/intern/ghost/intern/GHOST_System.cpp @@ -47,13 +47,14 @@ #include "GHOST_DisplayManager.h" #include "GHOST_EventManager.h" +#include "GHOST_NDOFManager.h" #include "GHOST_TimerTask.h" #include "GHOST_TimerManager.h" #include "GHOST_WindowManager.h" GHOST_System::GHOST_System() -: m_displayManager(0), m_timerManager(0), m_windowManager(0), m_eventManager(0) +: m_displayManager(0), m_timerManager(0), m_windowManager(0), m_eventManager(0), m_ndofManager(0) { } @@ -239,6 +240,19 @@ GHOST_TSuccess GHOST_System::pushEvent(GHOST_IEvent* event) return success; } +void GHOST_System::openNDOF(GHOST_IWindow* w, + GHOST_NDOFLibraryInit_fp setNdofLibraryInit, + GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, + GHOST_NDOFEventHandler_fp setNdofEventHandler) +{ + m_ndofManager->deviceOpen(w, + setNdofLibraryInit, + setNdofLibraryShutdown, + setNdofDeviceOpen, + setNdofEventHandler); +} + GHOST_TSuccess GHOST_System::getModifierKeyState(GHOST_TModifierKeyMask mask, bool& isDown) const { @@ -271,6 +285,11 @@ GHOST_TSuccess GHOST_System::init() m_timerManager = new GHOST_TimerManager (); m_windowManager = new GHOST_WindowManager (); m_eventManager = new GHOST_EventManager (); + m_ndofManager = new GHOST_NDOFManager(); + + if(m_ndofManager) + printf("ndof manager \n"); + #ifdef GHOST_DEBUG if (m_eventManager) { m_eventManager->addConsumer(&m_eventPrinter); @@ -306,6 +325,10 @@ GHOST_TSuccess GHOST_System::exit() delete m_eventManager; m_eventManager = 0; } + if (m_ndofManager) { + delete m_ndofManager; + m_ndofManager = 0; + } return GHOST_kSuccess; } diff --git a/intern/ghost/intern/GHOST_System.h b/intern/ghost/intern/GHOST_System.h index 85e7b2d6b44..e7014b14f51 100644 --- a/intern/ghost/intern/GHOST_System.h +++ b/intern/ghost/intern/GHOST_System.h @@ -51,6 +51,7 @@ class GHOST_Event; class GHOST_TimerManager; class GHOST_Window; class GHOST_WindowManager; +class GHOST_NDOFManager; /** * Implementation of platform independent functionality of the GHOST_ISystem @@ -184,6 +185,24 @@ public: */ virtual GHOST_TSuccess addEventConsumer(GHOST_IEventConsumer* consumer); + + + /*************************************************************************************** + ** N-degree of freedom devcice management functionality + ***************************************************************************************/ + + /** Inherited from GHOST_ISystem + * Opens the N-degree of freedom device manager + */ + virtual void openNDOF(GHOST_IWindow* w, + GHOST_NDOFLibraryInit_fp setNdofLibraryInit, + GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, + GHOST_NDOFEventHandler_fp setNdofEventHandler); + + + + /*************************************************************************************** ** Cursor management functionality ***************************************************************************************/ @@ -243,6 +262,12 @@ public: */ virtual inline GHOST_WindowManager* getWindowManager() const; + /** + * Returns a pointer to our n-degree of freedeom manager. + * @return A pointer to our n-degree of freedeom manager. + */ + virtual inline GHOST_NDOFManager* getNDOFManager() const; + /** * Returns the state of all modifier keys. * @param keys The state of all modifier keys (true == pressed). @@ -290,6 +315,9 @@ protected: /** The event manager. */ GHOST_EventManager* m_eventManager; + /** The N-degree of freedom device manager */ + GHOST_NDOFManager* m_ndofManager; + /** Prints all the events. */ #ifdef GHOST_DEBUG GHOST_EventPrinter m_eventPrinter; @@ -314,5 +342,10 @@ inline GHOST_WindowManager* GHOST_System::getWindowManager() const return m_windowManager; } +inline GHOST_NDOFManager* GHOST_System::getNDOFManager() const +{ + return m_ndofManager; +} + #endif // _GHOST_SYSTEM_H_ -- cgit v1.2.3 From edc6512ba6528fce4442f9b20875d1a301a0ceef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Tue, 12 Jun 2007 20:01:28 +0000 Subject: first workable version on Os X work only in non camera mode in 3D view need the external plug-in to be compiled separately line 894 of ghostwinlay.c must be replaced with values adapted at your system see mailing list for features planned and how to use --- intern/ghost/GHOST_C-api.h | 7 +- intern/ghost/GHOST_ISystem.h | 6 +- intern/ghost/GHOST_Types.h | 35 +++++++--- intern/ghost/intern/GHOST_C-api.cpp | 9 ++- intern/ghost/intern/GHOST_EventNDOF.h | 22 ++---- intern/ghost/intern/GHOST_NDOFManager.cpp | 103 +++++++++++++++++++++-------- intern/ghost/intern/GHOST_NDOFManager.h | 34 ++++++++-- intern/ghost/intern/GHOST_System.cpp | 9 +-- intern/ghost/intern/GHOST_System.h | 6 +- intern/ghost/intern/GHOST_SystemCarbon.cpp | 51 +++++++++++--- intern/ghost/intern/GHOST_SystemCarbon.h | 4 ++ 11 files changed, 207 insertions(+), 79 deletions(-) (limited to 'intern') diff --git a/intern/ghost/GHOST_C-api.h b/intern/ghost/GHOST_C-api.h index d5fc87c16f6..568437b4231 100644 --- a/intern/ghost/GHOST_C-api.h +++ b/intern/ghost/GHOST_C-api.h @@ -276,8 +276,11 @@ extern void GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, GHOST_WindowHandle windowhandle, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, - GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, - GHOST_NDOFEventHandler_fp setNdofEventHandler); + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen + ); + + // original patch only + // GHOST_NDOFEventHandler_fp setNdofEventHandler); /*************************************************************************************** ** Cursor management functionality diff --git a/intern/ghost/GHOST_ISystem.h b/intern/ghost/GHOST_ISystem.h index 9c0cef2b4f0..541a78cbaa9 100644 --- a/intern/ghost/GHOST_ISystem.h +++ b/intern/ghost/GHOST_ISystem.h @@ -305,8 +305,10 @@ public: virtual void openNDOF(GHOST_IWindow*, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, - GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, - GHOST_NDOFEventHandler_fp setNdofEventHandler) = 0; + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen + // original patch only + // GHOST_NDOFEventHandler_fp setNdofEventHandler + ) = 0; /*************************************************************************************** diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h index f8f9a8d4735..9b8a402a195 100644 --- a/intern/ghost/GHOST_Types.h +++ b/intern/ghost/GHOST_Types.h @@ -338,19 +338,38 @@ typedef struct { GHOST_TInt32 z; } GHOST_TEventWheelData; -typedef int (*GHOST_NDOFLibraryInit_fp)(); -typedef void (*GHOST_NDOFLibraryShutdown_fp)(void* deviceHandle); -typedef void* (*GHOST_NDOFDeviceOpen_fp)(void* platformData); -typedef int (*GHOST_NDOFEventHandler_fp)(float* result7, void* deviceHandle, unsigned int message, unsigned int* wParam, unsigned long* lParam); /* original patch used floats, but the driver return ints and uns. We will calibrate in view, no sense on doing conversions twice */ +/* as all USB device controls are likely to use ints, this is also more future proof */ +//typedef struct { +// /** N-degree of freedom device data */ +// float tx, ty, tz; /** -x left, +y up, +z forward */ +// float rx, ry, rz; +// float dt; +//} GHOST_TEventNDOFData; + typedef struct { - /** N-degree of freedom device data */ - float tx, ty, tz; /** -x left, +y up, +z forward */ - float rx, ry, rz; - float dt; + /** N-degree of freedom device data v2*/ + int changed; + GHOST_TUns64 client; + GHOST_TUns64 address; + GHOST_TInt16 tx, ty, tz; /** -x left, +y up, +z forward */ + GHOST_TInt16 rx, ry, rz; + GHOST_TInt16 buttons; + GHOST_TUns64 time; + GHOST_TUns64 delta; } GHOST_TEventNDOFData; +typedef int (*GHOST_NDOFLibraryInit_fp)(); +typedef void (*GHOST_NDOFLibraryShutdown_fp)(void* deviceHandle); +typedef void* (*GHOST_NDOFDeviceOpen_fp)(void* platformData); + +// original patch windows callback. In mac os X version the callback is internal to the plug-in and post an event to main thead. +// not necessary faster, but better integration with other events. + +//typedef int (*GHOST_NDOFEventHandler_fp)(float* result7, void* deviceHandle, unsigned int message, unsigned int* wParam, unsigned long* lParam); +//typedef void (*GHOST_NDOFCallBack_fp)(GHOST_TEventNDOFDataV2 *VolDatas); + typedef struct { /** The key code. */ GHOST_TKey key; diff --git a/intern/ghost/intern/GHOST_C-api.cpp b/intern/ghost/intern/GHOST_C-api.cpp index cbecb49c80b..8fa79261483 100644 --- a/intern/ghost/intern/GHOST_C-api.cpp +++ b/intern/ghost/intern/GHOST_C-api.cpp @@ -262,13 +262,16 @@ GHOST_TSuccess GHOST_AddEventConsumer(GHOST_SystemHandle systemhandle, GHOST_Eve void GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, GHOST_WindowHandle windowhandle, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, - GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, - GHOST_NDOFEventHandler_fp setNdofEventHandler) + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen) + //original patch only + /* GHOST_NDOFEventHandler_fp setNdofEventHandler)*/ { GHOST_ISystem* system = (GHOST_ISystem*) systemhandle; system->openNDOF((GHOST_IWindow*) windowhandle, - setNdofLibraryInit, setNdofLibraryShutdown, setNdofDeviceOpen, setNdofEventHandler); + setNdofLibraryInit, setNdofLibraryShutdown, setNdofDeviceOpen); +// original patch +// setNdofLibraryInit, setNdofLibraryShutdown, setNdofDeviceOpen, setNdofEventHandler); } diff --git a/intern/ghost/intern/GHOST_EventNDOF.h b/intern/ghost/intern/GHOST_EventNDOF.h index 1eadebd92ac..76f5a9e0894 100644 --- a/intern/ghost/intern/GHOST_EventNDOF.h +++ b/intern/ghost/intern/GHOST_EventNDOF.h @@ -1,14 +1,10 @@ -/** - * $Id: GHOST_EventNdof.h,v 1.6 2002/12/28 22:26:45 maarten Exp $ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +/* + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -19,19 +15,11 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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/BL DUAL LICENSE BLOCK ***** - */ -/** - * @file GHOST_EventNdof.h - * Declaration of GHOST_EventNdof class. + * ***** END GPL LICENSE BLOCK ***** */ + #ifndef _GHOST_EVENT_NDOF_H_ #define _GHOST_EVENT_NDOF_H_ diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp index 3ac3d483d18..1bfaf390544 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.cpp +++ b/intern/ghost/intern/GHOST_NDOFManager.cpp @@ -1,21 +1,23 @@ - -// Insert Blender compatible license here :-) - -// note: an implementation is currently only provided for Windows, but designed to be easy to move to Linux, etc. - -/** - - To use this implemenation, you must specify the #define WITH_SPACEBALL for the ghost library. - Only this cpp file is affected by the macro, the header file and everything else are independent - of the spaceball libraries. - - The 3dXWare SDK is available from the tab on the left side of - - http://www.3dconnexion.com/support/4a.php - - The SDK is necessary to build this file with WITH_SPACEBALL defined. - - For this stuff to work, siappdll.dll and spwini.dll must be in the executable path of blender - +/* + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** */ @@ -23,15 +25,17 @@ //#include "GHOST_WindowWin32.h" - - +// the variable is outside the class because it must be accessed from plugin +static volatile GHOST_TEventNDOFData currentNdofValues = {0,0,0,0,0,0,0,0,0,0,0}; namespace { GHOST_NDOFLibraryInit_fp ndofLibraryInit = 0; GHOST_NDOFLibraryShutdown_fp ndofLibraryShutdown = 0; GHOST_NDOFDeviceOpen_fp ndofDeviceOpen = 0; - GHOST_NDOFEventHandler_fp ndofEventHandler = 0; +// GHOST_NDOFEventHandler_fp ndofEventHandler = 0; + + } @@ -45,8 +49,7 @@ GHOST_NDOFManager::GHOST_NDOFManager() ndofLibraryInit = 0; ndofLibraryShutdown = 0; ndofDeviceOpen = 0; - ndofEventHandler = 0; - // available = 0; + // ndofEventHandler = 0; } GHOST_NDOFManager::~GHOST_NDOFManager() @@ -62,18 +65,22 @@ void GHOST_NDOFManager::deviceOpen(GHOST_IWindow* window, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, - GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, - GHOST_NDOFEventHandler_fp setNdofEventHandler) + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen) +// GHOST_NDOFEventHandler_fp setNdofEventHandler) { ndofLibraryInit = setNdofLibraryInit; ndofLibraryShutdown = setNdofLibraryShutdown; ndofDeviceOpen = setNdofDeviceOpen; - ndofEventHandler = setNdofEventHandler; +// original patch +// ndofEventHandler = setNdofEventHandler; if (ndofLibraryInit && ndofDeviceOpen) { printf("%i client \n", ndofLibraryInit()); - } + m_DeviceHandle = ndofDeviceOpen((void *)¤tNdofValues); + } + + /* if (ndofDeviceOpen) { @@ -87,7 +94,8 @@ GHOST_NDOFManager::deviceOpen(GHOST_IWindow* window, } - +/** original patch only */ +/* GHOST_TEventNDOFData* GHOST_NDOFManager::handle(unsigned int message, unsigned int* wParam, unsigned long* lParam) { @@ -100,7 +108,7 @@ GHOST_NDOFManager::handle(unsigned int message, unsigned int* wParam, unsigned l printf("handled %i\n", handled); return handled ? &sbdata : 0; } - +*/ bool GHOST_NDOFManager::available() @@ -108,3 +116,40 @@ GHOST_NDOFManager::available() return m_DeviceHandle != 0; } +bool +GHOST_NDOFManager::event_present() +{ + if( currentNdofValues.changed >0) { + printf("time %llu but%u x%i y%i z%i rx%i ry%i rz%i \n" , + currentNdofValues.time, currentNdofValues.buttons, + currentNdofValues.tx,currentNdofValues.ty,currentNdofValues.tz, + currentNdofValues.rx,currentNdofValues.ry,currentNdofValues.rz); + return true; + }else + return false; + +} + +void GHOST_NDOFManager::GHOST_NDOFGetDatas(GHOST_TEventNDOFData &datas) +{ + datas.tx = currentNdofValues.tx; + datas.ty = currentNdofValues.ty; + datas.tz = currentNdofValues.tz; + datas.rx = currentNdofValues.rx; + datas.ry = currentNdofValues.ry; + datas.rz = currentNdofValues.rz; + datas.buttons = currentNdofValues.buttons; + datas.client = currentNdofValues.client; + datas.address = currentNdofValues.address; + datas.time = currentNdofValues.time; + datas.delta = currentNdofValues.delta; + +} + +/* +//#ifdef +OSStatus GHOST_SystemCarbon::blendEventHandlerProc(EventHandlerCallRef handler, EventRef event, void* userData) +{ +} + +*/ diff --git a/intern/ghost/intern/GHOST_NDOFManager.h b/intern/ghost/intern/GHOST_NDOFManager.h index 69e7f8e25f0..2e905ed53d2 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.h +++ b/intern/ghost/intern/GHOST_NDOFManager.h @@ -1,4 +1,25 @@ - +/* + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + #ifndef _GHOST_NDOFMANAGER_H_ #define _GHOST_NDOFMANAGER_H_ @@ -23,13 +44,18 @@ public: void deviceOpen(GHOST_IWindow* window, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, - GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, - GHOST_NDOFEventHandler_fp setNdofEventHandler); + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen); + + void GHOST_NDOFGetDatas(GHOST_TEventNDOFData &datas); + +// GHOST_NDOFEventHandler_fp setNdofEventHandler); bool available(); + bool event_present(); +/* original patch. unused now */ /* to do: abstract for Linux, MacOS, etc. */ - GHOST_TEventNDOFData* handle(unsigned int message, unsigned int* wparam, unsigned long* lparam); +// GHOST_TEventNDOFData* handle(unsigned int message, unsigned int* wparam, unsigned long* lparam); protected: void* m_DeviceHandle; diff --git a/intern/ghost/intern/GHOST_System.cpp b/intern/ghost/intern/GHOST_System.cpp index 7daeca9566b..674b1f67d55 100644 --- a/intern/ghost/intern/GHOST_System.cpp +++ b/intern/ghost/intern/GHOST_System.cpp @@ -243,14 +243,15 @@ GHOST_TSuccess GHOST_System::pushEvent(GHOST_IEvent* event) void GHOST_System::openNDOF(GHOST_IWindow* w, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, - GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, - GHOST_NDOFEventHandler_fp setNdofEventHandler) + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen) +// original patch only +// GHOST_NDOFEventHandler_fp setNdofEventHandler) { m_ndofManager->deviceOpen(w, setNdofLibraryInit, setNdofLibraryShutdown, - setNdofDeviceOpen, - setNdofEventHandler); + setNdofDeviceOpen); + // setNdofEventHandler); } diff --git a/intern/ghost/intern/GHOST_System.h b/intern/ghost/intern/GHOST_System.h index e7014b14f51..a45196ee3da 100644 --- a/intern/ghost/intern/GHOST_System.h +++ b/intern/ghost/intern/GHOST_System.h @@ -197,8 +197,10 @@ public: virtual void openNDOF(GHOST_IWindow* w, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, - GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen, - GHOST_NDOFEventHandler_fp setNdofEventHandler); + GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen); + +// original patch only +// GHOST_NDOFEventHandler_fp setNdofEventHandler); diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp index e1e3853e8a8..056addddeb1 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.cpp +++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp @@ -48,22 +48,33 @@ #include "GHOST_EventButton.h" #include "GHOST_EventCursor.h" #include "GHOST_EventWheel.h" +#include "GHOST_EventNDOF.h" + #include "GHOST_TimerManager.h" #include "GHOST_TimerTask.h" #include "GHOST_WindowManager.h" #include "GHOST_WindowCarbon.h" +#include "GHOST_NDOFManager.h" #define GHOST_KEY_SWITCH(mac, ghost) { case (mac): ghostKey = (ghost); break; } +/* blender class and types events */ +enum { + kEventClassBlender = 'blnd' +}; + +enum { + kEventBlenderNdofAxis = 1, + kEventBlenderNdofButtons = 2 +}; + const EventTypeSpec kEvents[] = { { kEventClassAppleEvent, kEventAppleEvent }, - /* { kEventClassApplication, kEventAppActivated }, { kEventClassApplication, kEventAppDeactivated }, */ - { kEventClassKeyboard, kEventRawKeyDown }, { kEventClassKeyboard, kEventRawKeyRepeat }, { kEventClassKeyboard, kEventRawKeyUp }, @@ -84,7 +95,12 @@ const EventTypeSpec kEvents[] = { kEventClassWindow, kEventWindowActivated }, { kEventClassWindow, kEventWindowDeactivated }, { kEventClassWindow, kEventWindowUpdate }, - { kEventClassWindow, kEventWindowBoundsChanged } + { kEventClassWindow, kEventWindowBoundsChanged }, + + { kEventClassBlender, kEventBlenderNdofAxis }, + { kEventClassBlender, kEventBlenderNdofButtons } + + }; @@ -416,7 +432,9 @@ GHOST_IWindow* GHOST_SystemCarbon::createWindow( return window; } - +/* this is an old style low level event queue. + As we want to handle our own timers, this is ok. + the full screen hack should be removed */ bool GHOST_SystemCarbon::processEvents(bool waitForEvent) { bool anyProcessed = false; @@ -424,7 +442,7 @@ bool GHOST_SystemCarbon::processEvents(bool waitForEvent) do { GHOST_TimerManager* timerMgr = getTimerManager(); - + if (waitForEvent) { GHOST_TUns64 curtime = getMilliSeconds(); GHOST_TUns64 next = timerMgr->nextFireTime(); @@ -455,6 +473,8 @@ bool GHOST_SystemCarbon::processEvents(bool waitForEvent) } } + + /* end loop when no more events available */ while (::ReceiveNextEvent(0, NULL, 0, true, &event)==noErr) { OSStatus status= ::SendEventToEventTarget(event, ::GetEventDispatcherTarget()); if (status==noErr) { @@ -466,7 +486,7 @@ bool GHOST_SystemCarbon::processEvents(bool waitForEvent) * are, but we get a lot of them */ if (i!='cgs ') { - //printf("Missed - Class: '%.4s', Kind: %d\n", &i, ::GetEventKind(event)); + printf("Missed - Class: '%.4s', Kind: %d\n", &i, ::GetEventKind(event)); } } ::ReleaseEvent(event); @@ -610,6 +630,7 @@ OSErr GHOST_SystemCarbon::sAEHandlerQuit(const AppleEvent *event, AppleEvent *re GHOST_TSuccess GHOST_SystemCarbon::init() { + GHOST_TSuccess success = GHOST_System::init(); if (success) { /* @@ -629,6 +650,7 @@ GHOST_TSuccess GHOST_SystemCarbon::init() ::AEInstallEventHandler(kCoreEventClass, kAEOpenDocuments, sAEHandlerOpenDocs, (SInt32) this, false); ::AEInstallEventHandler(kCoreEventClass, kAEPrintDocuments, sAEHandlerPrintDocs, (SInt32) this, false); ::AEInstallEventHandler(kCoreEventClass, kAEQuitApplication, sAEHandlerQuit, (SInt32) this, false); + } return success; } @@ -765,6 +787,7 @@ OSStatus GHOST_SystemCarbon::handleTabletEvent(EventRef event) } err = noErr; } + } OSStatus GHOST_SystemCarbon::handleMouseEvent(EventRef event) @@ -1039,11 +1062,14 @@ bool GHOST_SystemCarbon::handleMenuCommand(GHOST_TInt32 menuResult) return handled; } + OSStatus GHOST_SystemCarbon::sEventHandlerProc(EventHandlerCallRef handler, EventRef event, void* userData) { GHOST_SystemCarbon* sys = (GHOST_SystemCarbon*) userData; OSStatus err = eventNotHandledErr; - + GHOST_IWindow* window; + GHOST_TEventNDOFData data; + switch (::GetEventClass(event)) { case kEventClassAppleEvent: @@ -1061,7 +1087,16 @@ OSStatus GHOST_SystemCarbon::sEventHandlerProc(EventHandlerCallRef handler, Even case kEventClassKeyboard: err = sys->handleKeyEvent(event); break; - } + case kEventClassBlender : + window = sys->m_windowManager->getActiveWindow(); + sys->m_ndofManager->GHOST_NDOFGetDatas(data); + sys->m_eventManager->pushEvent(new GHOST_EventNDOF(sys->getMilliSeconds(), GHOST_kEventNDOFMotion, window, data)); + err = noErr; + break; + default : + ; + break; + } return err; } diff --git a/intern/ghost/intern/GHOST_SystemCarbon.h b/intern/ghost/intern/GHOST_SystemCarbon.h index 93022aa78ff..f2e3a775701 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.h +++ b/intern/ghost/intern/GHOST_SystemCarbon.h @@ -224,6 +224,10 @@ protected: */ bool handleMenuCommand(GHOST_TInt32 menuResult); + /* callback for blender generated events */ +// static OSStatus blendEventHandlerProc(EventHandlerCallRef handler, EventRef event, void* userData); + + /** * Callback for Carbon when it has events. */ -- cgit v1.2.3 From a75f431cd3245f2a71cedf5523dc2b6f8fda6740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Thu, 28 Jun 2007 22:37:38 +0000 Subject: committing Ettore Pasquini MS windows support for NDOF devices I applied the patch but cant test so please let me know if any problem. the plugin itself can be found either on Ettore site http://cubelogic/blender/ or on my site http://jlp.nerim.net/dev/6dof/ on my site there is also the source of mac plugin --- intern/ghost/GHOST_Types.h | 4 ++++ intern/ghost/intern/GHOST_SystemWin32.cpp | 13 +++++++++++++ intern/ghost/make/msvc_7_0/ghost.vcproj | 9 +++++++++ 3 files changed, 26 insertions(+) (limited to 'intern') diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h index 9b8a402a195..0de4c162ab8 100644 --- a/intern/ghost/GHOST_Types.h +++ b/intern/ghost/GHOST_Types.h @@ -39,6 +39,10 @@ typedef unsigned short GHOST_TUns16; typedef int GHOST_TInt32; typedef unsigned int GHOST_TUns32; +#ifdef WIN32 +#define WM_BLND_3DX WM_USER + 1 +#endif + #if defined(WIN32) && !defined(FREE_WINDOWS) typedef __int64 GHOST_TInt64; typedef unsigned __int64 GHOST_TUns64; diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index ec6d0d355b5..bfd41e29946 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -64,10 +64,12 @@ #include "GHOST_EventCursor.h" #include "GHOST_EventKey.h" #include "GHOST_EventWheel.h" +#include "GHOST_EventNDOF.h" #include "GHOST_TimerTask.h" #include "GHOST_TimerManager.h" #include "GHOST_WindowManager.h" #include "GHOST_WindowWin32.h" +#include "GHOST_NDOFManager.h" // Key code values not found in winuser.h #ifndef VK_MINUS @@ -853,6 +855,17 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam, WM_CREATE 0x01 We let DefWindowProc do the work. */ + case WM_BLND_3DX: + { + GHOST_TEventNDOFData ndofdata; + system->m_ndofManager->GHOST_NDOFGetDatas(ndofdata); + system->m_eventManager-> + pushEvent(new GHOST_EventNDOF( + system->getMilliSeconds(), + GHOST_kEventNDOFMotion, + window, ndofdata)); + } + break; } } else { diff --git a/intern/ghost/make/msvc_7_0/ghost.vcproj b/intern/ghost/make/msvc_7_0/ghost.vcproj index 9d0aef451e7..e5b2e09a678 100644 --- a/intern/ghost/make/msvc_7_0/ghost.vcproj +++ b/intern/ghost/make/msvc_7_0/ghost.vcproj @@ -280,6 +280,9 @@ ECHO Done + + @@ -292,6 +295,9 @@ ECHO Done + + @@ -373,6 +379,9 @@ ECHO Done + + -- cgit v1.2.3 From 198513c49f720897d39c10c1fcc656e3c60e63bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Tue, 10 Jul 2007 19:32:30 +0000 Subject: committing Ettore Pasquini 6DOF patch for linux As previously the plugin itself is available on his site : http://cubelogic.org/blender/3dcnxplug-lin.c or on mine (soon) : http://jlp.nerim.net/dev/6dof/ Please let me know if any problem, i cannot test. We have now patches for our 3 main platforms features are still minimal, but will follow soon. --- intern/ghost/intern/GHOST_NDOFManager.cpp | 78 +++++++++++-------------------- intern/ghost/intern/GHOST_NDOFManager.h | 12 ++--- intern/ghost/intern/GHOST_SystemX11.cpp | 77 ++++++++++++++++-------------- intern/ghost/intern/GHOST_SystemX11.h | 6 ++- 4 files changed, 79 insertions(+), 94 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp index 1bfaf390544..e4a3bc230d6 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.cpp +++ b/intern/ghost/intern/GHOST_NDOFManager.cpp @@ -22,7 +22,6 @@ #include "GHOST_NDOFManager.h" -//#include "GHOST_WindowWin32.h" // the variable is outside the class because it must be accessed from plugin @@ -33,14 +32,8 @@ namespace GHOST_NDOFLibraryInit_fp ndofLibraryInit = 0; GHOST_NDOFLibraryShutdown_fp ndofLibraryShutdown = 0; GHOST_NDOFDeviceOpen_fp ndofDeviceOpen = 0; -// GHOST_NDOFEventHandler_fp ndofEventHandler = 0; - - } - -//typedef enum SpwRetVal (WINAPI *PFNSI_INIT) (void); - GHOST_NDOFManager::GHOST_NDOFManager() { m_DeviceHandle = 0; @@ -49,7 +42,6 @@ GHOST_NDOFManager::GHOST_NDOFManager() ndofLibraryInit = 0; ndofLibraryShutdown = 0; ndofDeviceOpen = 0; - // ndofEventHandler = 0; } GHOST_NDOFManager::~GHOST_NDOFManager() @@ -66,31 +58,26 @@ GHOST_NDOFManager::deviceOpen(GHOST_IWindow* window, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen) -// GHOST_NDOFEventHandler_fp setNdofEventHandler) { ndofLibraryInit = setNdofLibraryInit; ndofLibraryShutdown = setNdofLibraryShutdown; ndofDeviceOpen = setNdofDeviceOpen; -// original patch -// ndofEventHandler = setNdofEventHandler; if (ndofLibraryInit && ndofDeviceOpen) { printf("%i client \n", ndofLibraryInit()); + m_DeviceHandle = ndofDeviceOpen((void *)¤tNdofValues); + + #if defined(_WIN32) || defined(__APPLE__) + m_DeviceHandle = ndofDeviceOpen((void *)¤tNdofValues); + #else + GHOST_SystemX11 *sys; + sys = static_cast(GHOST_ISystem::getSystem()); + void *ndofInfo = sys->prepareNdofInfo(¤tNdofValues); + m_DeviceHandle = ndofDeviceOpen(ndofInfo); + #endif } - - -/* - if (ndofDeviceOpen) - { - GHOST_WindowWin32* win32 = (GHOST_WindowWin32*) window; // GHOST_IWindow doesn't have RTTI... - if (win32 != 0) - { - m_DeviceHandle = ndofDeviceOpen(win32->getHWND()); - } - } - */ } @@ -111,45 +98,36 @@ GHOST_NDOFManager::handle(unsigned int message, unsigned int* wParam, unsigned l */ bool -GHOST_NDOFManager::available() +GHOST_NDOFManager::available() const { return m_DeviceHandle != 0; } bool -GHOST_NDOFManager::event_present() +GHOST_NDOFManager::event_present() const { if( currentNdofValues.changed >0) { - printf("time %llu but%u x%i y%i z%i rx%i ry%i rz%i \n" , - currentNdofValues.time, currentNdofValues.buttons, - currentNdofValues.tx,currentNdofValues.ty,currentNdofValues.tz, - currentNdofValues.rx,currentNdofValues.ry,currentNdofValues.rz); + printf("time %llu but%u x%i y%i z%i rx%i ry%i rz%i \n" , + currentNdofValues.time, currentNdofValues.buttons, + currentNdofValues.tx,currentNdofValues.ty,currentNdofValues.tz, + currentNdofValues.rx,currentNdofValues.ry,currentNdofValues.rz); return true; }else return false; } -void GHOST_NDOFManager::GHOST_NDOFGetDatas(GHOST_TEventNDOFData &datas) -{ - datas.tx = currentNdofValues.tx; - datas.ty = currentNdofValues.ty; - datas.tz = currentNdofValues.tz; - datas.rx = currentNdofValues.rx; - datas.ry = currentNdofValues.ry; - datas.rz = currentNdofValues.rz; - datas.buttons = currentNdofValues.buttons; - datas.client = currentNdofValues.client; - datas.address = currentNdofValues.address; - datas.time = currentNdofValues.time; - datas.delta = currentNdofValues.delta; - -} - -/* -//#ifdef -OSStatus GHOST_SystemCarbon::blendEventHandlerProc(EventHandlerCallRef handler, EventRef event, void* userData) +void GHOST_NDOFManager::GHOST_NDOFGetDatas(GHOST_TEventNDOFData &datas) const { + datas.tx = currentNdofValues.tx; + datas.ty = currentNdofValues.ty; + datas.tz = currentNdofValues.tz; + datas.rx = currentNdofValues.rx; + datas.ry = currentNdofValues.ry; + datas.rz = currentNdofValues.rz; + datas.buttons = currentNdofValues.buttons; + datas.client = currentNdofValues.client; + datas.address = currentNdofValues.address; + datas.time = currentNdofValues.time; + datas.delta = currentNdofValues.delta; } - -*/ diff --git a/intern/ghost/intern/GHOST_NDOFManager.h b/intern/ghost/intern/GHOST_NDOFManager.h index 2e905ed53d2..03037797e1e 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.h +++ b/intern/ghost/intern/GHOST_NDOFManager.h @@ -46,16 +46,10 @@ public: GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen); - void GHOST_NDOFGetDatas(GHOST_TEventNDOFData &datas); + void GHOST_NDOFGetDatas(GHOST_TEventNDOFData &datas) const; -// GHOST_NDOFEventHandler_fp setNdofEventHandler); - - bool available(); - bool event_present(); - -/* original patch. unused now */ - /* to do: abstract for Linux, MacOS, etc. */ -// GHOST_TEventNDOFData* handle(unsigned int message, unsigned int* wparam, unsigned long* lparam); + bool available() const; + bool event_present() const; protected: void* m_DeviceHandle; diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 14383ad3624..6eefb48f6e8 100755 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -29,37 +29,6 @@ * ***** END GPL/BL DUAL LICENSE BLOCK ***** */ -/** - * $Id$ - * ***** BEGIN GPL/BL DUAL 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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/BL DUAL LICENSE BLOCK ***** - */ - #ifdef HAVE_CONFIG_H #include #endif @@ -72,6 +41,8 @@ #include "GHOST_EventKey.h" #include "GHOST_EventButton.h" #include "GHOST_EventWheel.h" +#include "GHOST_EventNDOF.h" +#include "GHOST_NDOFManager.h" #include "GHOST_DisplayManagerX11.h" #include "GHOST_Debug.h" @@ -96,6 +67,14 @@ #include +typedef struct NDOFPlatformInfo { + Display *display; + Window window; + volatile GHOST_TEventNDOFData *currValues; +} NDOFPlatformInfo; + +static NDOFPlatformInfo sNdofInfo = {NULL, 0, NULL}; + using namespace std; GHOST_SystemX11:: @@ -145,8 +124,6 @@ init( return GHOST_kFailure; } - - GHOST_TUns64 GHOST_SystemX11:: @@ -235,7 +212,6 @@ createWindow( } } return window; - } GHOST_WindowX11 * @@ -483,6 +459,28 @@ GHOST_SystemX11::processEvent(XEvent *xe) GHOST_kEventWindowClose, window ); + } else +#endif + if (sNdofInfo.currValues) { + sNdofInfo.currValues->changed = 1; + sNdofInfo.currValues->delta = xcme.data.s[8] - sNdofInfo.currValues->time; + sNdofInfo.currValues->time = xcme.data.s[8]; + sNdofInfo.currValues->tx = xcme.data.s[2] >> 4; + sNdofInfo.currValues->ty = xcme.data.s[3] >> 4; + sNdofInfo.currValues->tz = xcme.data.s[4] >> 4; + sNdofInfo.currValues->rx = xcme.data.s[5]; + sNdofInfo.currValues->ry = xcme.data.s[6]; + sNdofInfo.currValues->rz = xcme.data.s[7]; + + /*fprintf(stderr, "ClientMessage: [%d %d %d][%d %d %d] t=%llu\n", + sNdofInfo.currValues->tx, sNdofInfo.currValues->ty, + sNdofInfo.currValues->tz, sNdofInfo.currValues->rx, + sNdofInfo.currValues->ry, sNdofInfo.currValues->rz, + sNdofInfo.currValues->time); */ + + g_event = new GHOST_EventNDOF(getMilliSeconds(), + GHOST_kEventNDOFMotion, + window, *sNdofInfo.currValues); } else { /* Unknown client message, ignore */ } @@ -539,6 +537,17 @@ GHOST_SystemX11::processEvent(XEvent *xe) } } + void * +GHOST_SystemX11:: +prepareNdofInfo(volatile GHOST_TEventNDOFData *currentNdofValues) +{ + const vector& v(m_windowManager->getWindows()); + if (v.size() > 0) + sNdofInfo.window = static_cast(v[0])->getXWindow(); + sNdofInfo.display = m_display; + sNdofInfo.currValues = currentNdofValues; + return (void*)&sNdofInfo; +} GHOST_TSuccess GHOST_SystemX11:: diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h index c8d8d73404a..e6adff44155 100755 --- a/intern/ghost/intern/GHOST_SystemX11.h +++ b/intern/ghost/intern/GHOST_SystemX11.h @@ -196,7 +196,11 @@ public: return m_display; } - + void * + prepareNdofInfo( + volatile GHOST_TEventNDOFData *current_values + ); + private : Display * m_display; -- cgit v1.2.3 From 1104a39f111b05f5897497c7a424d8d277961093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Tue, 10 Jul 2007 21:04:32 +0000 Subject: forgot a needed include in the patch --- intern/ghost/intern/GHOST_NDOFManager.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp index e4a3bc230d6..f88016b6b3e 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.cpp +++ b/intern/ghost/intern/GHOST_NDOFManager.cpp @@ -27,6 +27,10 @@ // the variable is outside the class because it must be accessed from plugin static volatile GHOST_TEventNDOFData currentNdofValues = {0,0,0,0,0,0,0,0,0,0,0}; +#if !defined(_WIN32) && !defined(__APPLE__) +#include "GHOST_SystemX11.h" +#endif + namespace { GHOST_NDOFLibraryInit_fp ndofLibraryInit = 0; -- cgit v1.2.3 From 603da178b9242522e271c0f44bc8c00958b6e05b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Sun, 15 Jul 2007 14:30:09 +0000 Subject: commiting fixes from Ettore for building on linux & win 32 --- intern/ghost/intern/GHOST_NDOFManager.cpp | 3 --- intern/ghost/intern/GHOST_NDOFManager.h | 7 ------- intern/ghost/intern/GHOST_SystemWin32.cpp | 22 +++++++++++----------- intern/ghost/intern/GHOST_SystemX11.cpp | 3 +-- 4 files changed, 12 insertions(+), 23 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp index f88016b6b3e..501d6c57dd5 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.cpp +++ b/intern/ghost/intern/GHOST_NDOFManager.cpp @@ -70,9 +70,6 @@ GHOST_NDOFManager::deviceOpen(GHOST_IWindow* window, if (ndofLibraryInit && ndofDeviceOpen) { printf("%i client \n", ndofLibraryInit()); - - m_DeviceHandle = ndofDeviceOpen((void *)¤tNdofValues); - #if defined(_WIN32) || defined(__APPLE__) m_DeviceHandle = ndofDeviceOpen((void *)¤tNdofValues); #else diff --git a/intern/ghost/intern/GHOST_NDOFManager.h b/intern/ghost/intern/GHOST_NDOFManager.h index 03037797e1e..c1f0b2c80af 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.h +++ b/intern/ghost/intern/GHOST_NDOFManager.h @@ -31,14 +31,7 @@ class GHOST_NDOFManager { public: - /** - * Constructor. - */ GHOST_NDOFManager(); - - /** - * Destructor. - */ virtual ~GHOST_NDOFManager(); void deviceOpen(GHOST_IWindow* window, diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index bfd41e29946..89a96987113 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -843,6 +843,17 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam, * In GHOST, we let DefWindowProc call the timer callback. */ break; + case WM_BLND_3DX: + { + GHOST_TEventNDOFData ndofdata; + system->m_ndofManager->GHOST_NDOFGetDatas(ndofdata); + system->m_eventManager-> + pushEvent(new GHOST_EventNDOF( + system->getMilliSeconds(), + GHOST_kEventNDOFMotion, + window, ndofdata)); + } + break; } } else { @@ -855,17 +866,6 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam, WM_CREATE 0x01 We let DefWindowProc do the work. */ - case WM_BLND_3DX: - { - GHOST_TEventNDOFData ndofdata; - system->m_ndofManager->GHOST_NDOFGetDatas(ndofdata); - system->m_eventManager-> - pushEvent(new GHOST_EventNDOF( - system->getMilliSeconds(), - GHOST_kEventNDOFMotion, - window, ndofdata)); - } - break; } } else { diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 6eefb48f6e8..e3d4ee405e8 100755 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -484,7 +484,6 @@ GHOST_SystemX11::processEvent(XEvent *xe) } else { /* Unknown client message, ignore */ } -#endif break; } @@ -543,7 +542,7 @@ prepareNdofInfo(volatile GHOST_TEventNDOFData *currentNdofValues) { const vector& v(m_windowManager->getWindows()); if (v.size() > 0) - sNdofInfo.window = static_cast(v[0])->getXWindow(); + sNdofInfo.window = static_cast(v[0])->getXWindow(); sNdofInfo.display = m_display; sNdofInfo.currValues = currentNdofValues; return (void*)&sNdofInfo; -- cgit v1.2.3 From bfa77f611f750510e1ee0eda15d987990281ef7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Sun, 29 Jul 2007 18:03:36 +0000 Subject: more work on the ndof system. turntable code should work reasonabilly well now. fly code need works but is no more insane on Os X. transform object is not present here. if you find the movements a bit slow, you can speed it in the preferences up to 2x in the view & controls panel. button1 (left) of the device let you switch between the 3 modes. button2 let you switch between unconstrained and dominant mode. the plugin must be named 3DxNdofBlender.plug and be placed in a folder named plugins in same folder as executable check no scaling is done in the plugin please check it works ok on 3 platforms --- intern/ghost/GHOST_Types.h | 3 ++- intern/ghost/intern/GHOST_SystemCarbon.cpp | 17 ++++++++++++++-- intern/ghost/intern/GHOST_SystemX11.cpp | 32 +++++++++++++----------------- 3 files changed, 31 insertions(+), 21 deletions(-) (limited to 'intern') diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h index 0de4c162ab8..379b3323f53 100644 --- a/intern/ghost/GHOST_Types.h +++ b/intern/ghost/GHOST_Types.h @@ -137,7 +137,8 @@ typedef enum { GHOST_kEventButtonUp, /// Mouse button event GHOST_kEventWheel, /// Mouse wheel event - GHOST_kEventNDOFMotion, /// N degree of freedom device motion event + GHOST_kEventNDOFMotion, /// N degree of freedom device motion event + GHOST_kEventNDOFButton, /// N degree of freedom device button event GHOST_kEventKeyDown, GHOST_kEventKeyUp, diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp index 056addddeb1..756de42f227 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.cpp +++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp @@ -984,7 +984,7 @@ bool GHOST_SystemCarbon::handleMouseDown(EventRef event) GHOST_ASSERT(ghostWindow, "GHOST_SystemCarbon::handleMouseEvent: ghostWindow==0"); if (::TrackGoAway(window, mousePos)) { - // todo: add option-close, because itØs in the HIG + // todo: add option-close, because itÿs in the HIG // if (event.modifiers & optionKey) { // Close the clean documents, others will be confirmed one by one. //} @@ -1069,6 +1069,7 @@ OSStatus GHOST_SystemCarbon::sEventHandlerProc(EventHandlerCallRef handler, Even OSStatus err = eventNotHandledErr; GHOST_IWindow* window; GHOST_TEventNDOFData data; + UInt32 kind; switch (::GetEventClass(event)) { @@ -1090,7 +1091,19 @@ OSStatus GHOST_SystemCarbon::sEventHandlerProc(EventHandlerCallRef handler, Even case kEventClassBlender : window = sys->m_windowManager->getActiveWindow(); sys->m_ndofManager->GHOST_NDOFGetDatas(data); - sys->m_eventManager->pushEvent(new GHOST_EventNDOF(sys->getMilliSeconds(), GHOST_kEventNDOFMotion, window, data)); + kind = ::GetEventKind(event); + + switch (kind) + { + case 1: + sys->m_eventManager->pushEvent(new GHOST_EventNDOF(sys->getMilliSeconds(), GHOST_kEventNDOFMotion, window, data)); + // printf("motion\n"); + break; + case 2: + sys->m_eventManager->pushEvent(new GHOST_EventNDOF(sys->getMilliSeconds(), GHOST_kEventNDOFButton, window, data)); +// printf("button\n"); + break; + } err = noErr; break; default : diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index e3d4ee405e8..f3891995f54 100755 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -462,25 +462,21 @@ GHOST_SystemX11::processEvent(XEvent *xe) } else #endif if (sNdofInfo.currValues) { - sNdofInfo.currValues->changed = 1; - sNdofInfo.currValues->delta = xcme.data.s[8] - sNdofInfo.currValues->time; - sNdofInfo.currValues->time = xcme.data.s[8]; - sNdofInfo.currValues->tx = xcme.data.s[2] >> 4; - sNdofInfo.currValues->ty = xcme.data.s[3] >> 4; - sNdofInfo.currValues->tz = xcme.data.s[4] >> 4; - sNdofInfo.currValues->rx = xcme.data.s[5]; - sNdofInfo.currValues->ry = xcme.data.s[6]; - sNdofInfo.currValues->rz = xcme.data.s[7]; - - /*fprintf(stderr, "ClientMessage: [%d %d %d][%d %d %d] t=%llu\n", - sNdofInfo.currValues->tx, sNdofInfo.currValues->ty, - sNdofInfo.currValues->tz, sNdofInfo.currValues->rx, - sNdofInfo.currValues->ry, sNdofInfo.currValues->rz, - sNdofInfo.currValues->time); */ + GHOST_TEventNDOFData data; + data.changed = 1; + data.delta = xcme.data.s[8] - data.time; + data.time = xcme.data.s[8]; + data.tx = xcme.data.s[2] >> 4; + data.ty = xcme.data.s[3] >> 4; + data.tz = xcme.data.s[4] >> 4; + data.rx = xcme.data.s[5]; + data.ry = xcme.data.s[6]; + data.rz = xcme.data.s[7]; + + g_event = new GHOST_EventNDOF(getMilliSeconds(), + GHOST_kEventNDOFMotion, + window, data); - g_event = new GHOST_EventNDOF(getMilliSeconds(), - GHOST_kEventNDOFMotion, - window, *sNdofInfo.currValues); } else { /* Unknown client message, ignore */ } -- cgit v1.2.3 From df81fa977e12d8f6e5733e51d9be503b2cc67f14 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Tue, 31 Jul 2007 01:45:19 +0000 Subject: Tweak to allow building NDOFManager with old Makefiles --- intern/ghost/intern/Makefile | 1 + 1 file changed, 1 insertion(+) (limited to 'intern') diff --git a/intern/ghost/intern/Makefile b/intern/ghost/intern/Makefile index 32498222ac6..cccbf9a822b 100644 --- a/intern/ghost/intern/Makefile +++ b/intern/ghost/intern/Makefile @@ -39,6 +39,7 @@ CCSRCS += GHOST_EventManager.cpp GHOST_EventPrinter.cpp GHOST_WindowManager.cpp CCSRCS += GHOST_ISystem.cpp GHOST_ModifierKeys.cpp GHOST_TimerManager.cpp CCSRCS += GHOST_Rect.cpp GHOST_DisplayManager.cpp GHOST_C-api.cpp CCSRCS += GHOST_CallbackEventConsumer.cpp +CCSRCS += GHOST_NDOFManager.cpp include nan_definitions.mk -- cgit v1.2.3 From 7965e64e98091fafe733336a0ced252f2503f184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Thu, 2 Aug 2007 20:37:30 +0000 Subject: linux plugin support for ndof by Ettore Pasquini --- intern/ghost/intern/GHOST_SystemX11.cpp | 45 +++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 16 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index f3891995f54..9d4717b00ef 100755 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -71,9 +71,13 @@ typedef struct NDOFPlatformInfo { Display *display; Window window; volatile GHOST_TEventNDOFData *currValues; + Atom cmdAtom; + Atom motionAtom; + Atom btnPressAtom; + Atom btnRelAtom; } NDOFPlatformInfo; -static NDOFPlatformInfo sNdofInfo = {NULL, 0, NULL}; +static NDOFPlatformInfo sNdofInfo = {NULL, 0, NULL, 0, 0, 0, 0}; using namespace std; @@ -462,21 +466,30 @@ GHOST_SystemX11::processEvent(XEvent *xe) } else #endif if (sNdofInfo.currValues) { - GHOST_TEventNDOFData data; - data.changed = 1; - data.delta = xcme.data.s[8] - data.time; - data.time = xcme.data.s[8]; - data.tx = xcme.data.s[2] >> 4; - data.ty = xcme.data.s[3] >> 4; - data.tz = xcme.data.s[4] >> 4; - data.rx = xcme.data.s[5]; - data.ry = xcme.data.s[6]; - data.rz = xcme.data.s[7]; - - g_event = new GHOST_EventNDOF(getMilliSeconds(), - GHOST_kEventNDOFMotion, - window, data); - + static GHOST_TEventNDOFData data = {0,0,0,0,0,0,0,0,0,0,0}; + if (xcme.message_type == sNdofInfo.motionAtom) + { + data.changed = 1; + data.delta = xcme.data.s[8] - data.time; + data.time = xcme.data.s[8]; + data.tx = xcme.data.s[2]; + data.ty = xcme.data.s[3]; + data.tz = xcme.data.s[4]; + data.rx = xcme.data.s[5]; + data.ry = xcme.data.s[6]; + data.rz = xcme.data.s[7]; + g_event = new GHOST_EventNDOF(getMilliSeconds(), + GHOST_kEventNDOFMotion, + window, data); + } else if (xcme.message_type == sNdofInfo.btnPressAtom) { + data.changed = 2; + data.delta = xcme.data.s[8] - data.time; + data.time = xcme.data.s[8]; + data.buttons = xcme.data.s[2]; + g_event = new GHOST_EventNDOF(getMilliSeconds(), + GHOST_kEventNDOFButton, + window, data); + } } else { /* Unknown client message, ignore */ } -- cgit v1.2.3 From 1609fd61bcd4acd49d53a46a520baf28c51895c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Thu, 2 Aug 2007 20:45:55 +0000 Subject: windows ndof support added by Ettore Pasquini --- intern/ghost/GHOST_Types.h | 3 ++- intern/ghost/intern/GHOST_SystemWin32.cpp | 13 ++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h index 379b3323f53..7b791c44fd8 100644 --- a/intern/ghost/GHOST_Types.h +++ b/intern/ghost/GHOST_Types.h @@ -40,7 +40,8 @@ typedef int GHOST_TInt32; typedef unsigned int GHOST_TUns32; #ifdef WIN32 -#define WM_BLND_3DX WM_USER + 1 +#define WM_BLND_NDOF_AXIS WM_USER + 1 +#define WM_BLND_NDOF_BTN WM_USER + 2 #endif #if defined(WIN32) && !defined(FREE_WINDOWS) diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 89a96987113..5f4bfe9d668 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -843,7 +843,7 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam, * In GHOST, we let DefWindowProc call the timer callback. */ break; - case WM_BLND_3DX: + case WM_BLND_NDOF_AXIS: { GHOST_TEventNDOFData ndofdata; system->m_ndofManager->GHOST_NDOFGetDatas(ndofdata); @@ -854,6 +854,17 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam, window, ndofdata)); } break; + case WM_BLND_NDOF_BTN: + { + GHOST_TEventNDOFData ndofdata; + system->m_ndofManager->GHOST_NDOFGetDatas(ndofdata); + system->m_eventManager-> + pushEvent(new GHOST_EventNDOF( + system->getMilliSeconds(), + GHOST_kEventNDOFButton, + window, ndofdata)); + } + break; } } else { -- cgit v1.2.3 From 7f6bb8d8ccd49b3f14f9799962bfa37d47beef68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Thu, 16 Aug 2007 22:00:29 +0000 Subject: sculpt mode ndof transforms. please test, especially with multires conditions --- intern/ghost/intern/GHOST_SystemCarbon.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp index 756de42f227..7f1a2467d1a 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.cpp +++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp @@ -486,7 +486,9 @@ bool GHOST_SystemCarbon::processEvents(bool waitForEvent) * are, but we get a lot of them */ if (i!='cgs ') { - printf("Missed - Class: '%.4s', Kind: %d\n", &i, ::GetEventKind(event)); + if (i!='tblt') { // tablet event. we use the one packaged in the mouse event + printf("Missed - Class: '%.4s', Kind: %d\n", &i, ::GetEventKind(event)); + } } } ::ReleaseEvent(event); -- cgit v1.2.3 From 9db2035e3650ecbd1baf1943c490d6a4e140f2c3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 1 Jan 2008 16:14:08 +0000 Subject: while trying to debug memory leaks, extended MEM_printmemlist to print a python dict and some lines at the end to format it in a useful way when run as a python script. --- intern/guardedalloc/intern/mallocn.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index 51c2a2427b5..44909bbea54 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -333,6 +333,7 @@ void *MEM_mapallocN(unsigned int len, const char *str) } +/* Prints in python syntax for easy */ void MEM_printmemlist() { MemHead *membl; @@ -341,13 +342,33 @@ void MEM_printmemlist() membl = membase->first; if (membl) membl = MEMNEXT(membl); + + print_error("# membase_debug.py\n"); + print_error("membase = [\\\n"); while(membl) { - print_error("%s len: %d %p\n",membl->name,membl->len, membl+1); + fprintf(stderr, "{'len':%i, 'name':'''%s''', 'pointer':'%p'},\\\n", membl->len, membl->name, membl+1); if(membl->next) membl= MEMNEXT(membl->next); else break; } - + fprintf(stderr, "]\n\n"); + fprintf(stderr, +"mb_userinfo = {}\n" +"totmem = 0\n" +"for mb_item in membase:\n" +"\tmb_item_user_size = mb_userinfo.setdefault(mb_item['name'], [0,0])\n" +"\tmb_item_user_size[0] += 1 # Add a user\n" +"\tmb_item_user_size[1] += mb_item['len'] # Increment the size\n" +"\ttotmem += mb_item['len']\n" +"print '(membase) items:', len(membase), '| unique-names:', len(mb_userinfo), '| total-mem:', totmem\n" +"mb_userinfo_sort = mb_userinfo.items()\n" +"for sort_name, sort_func in (('size', lambda a: -a[1][1]), ('users', lambda a: -a[1][0]), ('name', lambda a: a[0])):\n" +"\tprint '\\nSorting by:', sort_name\n" +"\tmb_userinfo_sort.sort(key = sort_func)\n" +"\tfor item in mb_userinfo_sort:\n" +"\t\tprint 'name:%%s, users:%%i, len:%%i' %% (item[0], item[1][0], item[1][1])\n" + ); + mem_unlock_thread(); } -- cgit v1.2.3 From 86471f8b72d2a6ac8f6078b92f701da1eeab2525 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 3 Jan 2008 14:53:44 +0000 Subject: Split guardedalloc print into 2 funcs, 1 that prints on errors, another then prints the memory blocks as a python dict, minor changes to help text --- intern/guardedalloc/MEM_guardedalloc.h | 6 +++++- intern/guardedalloc/intern/mallocn.c | 29 ++++++++++++++++++++++------- 2 files changed, 27 insertions(+), 8 deletions(-) (limited to 'intern') diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h index 26a9258d03b..94276c0454a 100644 --- a/intern/guardedalloc/MEM_guardedalloc.h +++ b/intern/guardedalloc/MEM_guardedalloc.h @@ -99,10 +99,14 @@ extern "C" { * */ void *MEM_mapallocN(unsigned int len, const char * str); + /** Print a list of the names and sizes of all allocated memory + * blocks. as a python dict for easy investigation */ + void MEM_printmemlist_pydict(void); + /** Print a list of the names and sizes of all allocated memory * blocks. */ void MEM_printmemlist(void); - + /** Set the callback function for error output. */ void MEM_set_error_callback(void (*func)(char *)); diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index 44909bbea54..413f4d80514 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -334,7 +334,7 @@ void *MEM_mapallocN(unsigned int len, const char *str) /* Prints in python syntax for easy */ -void MEM_printmemlist() +static void MEM_printmemlist_internal( int pydict ) { MemHead *membl; @@ -343,16 +343,23 @@ void MEM_printmemlist() membl = membase->first; if (membl) membl = MEMNEXT(membl); - print_error("# membase_debug.py\n"); - print_error("membase = [\\\n"); + if (pydict) { + print_error("# membase_debug.py\n"); + print_error("membase = [\\\n"); + } while(membl) { - fprintf(stderr, "{'len':%i, 'name':'''%s''', 'pointer':'%p'},\\\n", membl->len, membl->name, membl+1); + if (pydict) { + fprintf(stderr, "{'len':%i, 'name':'''%s''', 'pointer':'%p'},\\\n", membl->len, membl->name, membl+1); + } else { + print_error("%s len: %d %p\n",membl->name,membl->len, membl+1); + } if(membl->next) membl= MEMNEXT(membl->next); else break; } - fprintf(stderr, "]\n\n"); - fprintf(stderr, + if (pydict) { + fprintf(stderr, "]\n\n"); + fprintf(stderr, "mb_userinfo = {}\n" "totmem = 0\n" "for mb_item in membase:\n" @@ -367,11 +374,19 @@ void MEM_printmemlist() "\tmb_userinfo_sort.sort(key = sort_func)\n" "\tfor item in mb_userinfo_sort:\n" "\t\tprint 'name:%%s, users:%%i, len:%%i' %% (item[0], item[1][0], item[1][1])\n" - ); + ); + } mem_unlock_thread(); } +void MEM_printmemlist( void ) { + MEM_printmemlist_internal(0); +} +void MEM_printmemlist_pydict( void ) { + MEM_printmemlist_internal(1); +} + short MEM_freeN(void *vmemh) /* anders compileertie niet meer */ { short error = 0; -- cgit v1.2.3 From 6f4c03a0911dd27e5b6bcd659d204db7c2ee2d38 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 20 Jan 2008 23:52:48 +0000 Subject: opengl stamp wasnt working right, stamp assumed an alpha channel existed. --- intern/bmfont/BMF_Api.h | 3 ++- intern/bmfont/intern/BMF_Api.cpp | 4 ++-- intern/bmfont/intern/BMF_BitmapFont.cpp | 10 +++++++--- intern/bmfont/intern/BMF_BitmapFont.h | 3 ++- 4 files changed, 13 insertions(+), 7 deletions(-) (limited to 'intern') diff --git a/intern/bmfont/BMF_Api.h b/intern/bmfont/BMF_Api.h index 1b4a4ee3129..4465242e9fa 100644 --- a/intern/bmfont/BMF_Api.h +++ b/intern/bmfont/BMF_Api.h @@ -152,8 +152,9 @@ void BMF_DrawStringTexture(BMF_Font* font, char* string, float x, float y, float * @param fbuf float image buffer, when NULL to not operate on it. * @param w image buffer width. * @param h image buffer height. + * @param channels number of channels in the image (3 or 4 - currently) */ -void BMF_DrawStringBuf(BMF_Font* font, char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h); +void BMF_DrawStringBuf(BMF_Font* font, char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h, int channels); #ifdef __cplusplus diff --git a/intern/bmfont/intern/BMF_Api.cpp b/intern/bmfont/intern/BMF_Api.cpp index eaa8ffb939d..24e053515fb 100644 --- a/intern/bmfont/intern/BMF_Api.cpp +++ b/intern/bmfont/intern/BMF_Api.cpp @@ -180,7 +180,7 @@ void BMF_DrawStringTexture(BMF_Font* font, char *string, float x, float y, float ((BMF_BitmapFont*)font)->DrawStringTexture(string, x, y, z); } -void BMF_DrawStringBuf(BMF_Font* font, char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h) { +void BMF_DrawStringBuf(BMF_Font* font, char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h, int channels) { if (!font) return; - ((BMF_BitmapFont*)font)->DrawStringBuf(str, posx, posy, col, buf, fbuf, w, h); + ((BMF_BitmapFont*)font)->DrawStringBuf(str, posx, posy, col, buf, fbuf, w, h, channels); } diff --git a/intern/bmfont/intern/BMF_BitmapFont.cpp b/intern/bmfont/intern/BMF_BitmapFont.cpp index 8e670c099a3..afdcf7fbfbb 100644 --- a/intern/bmfont/intern/BMF_BitmapFont.cpp +++ b/intern/bmfont/intern/BMF_BitmapFont.cpp @@ -241,7 +241,7 @@ void BMF_BitmapFont::DrawStringTexture(char *str, float x, float y, float z) } #define FTOCHAR(val) val<=0.0f?0: (val>=1.0f?255: (char)(255.0f*val)) -void BMF_BitmapFont::DrawStringBuf(char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h) +void BMF_BitmapFont::DrawStringBuf(char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h, int channels) { int x, y; @@ -277,7 +277,9 @@ void BMF_BitmapFont::DrawStringBuf(char *str, int posx, int posy, float *col, un pixel[0] = colch[0]; pixel[1] = colch[1]; pixel[2] = colch[2]; - pixel[4] = 1; /*colch[3];*/ + if (channels==4) { + pixel[4] = 1; /*colch[3];*/ + } } } @@ -310,7 +312,9 @@ void BMF_BitmapFont::DrawStringBuf(char *str, int posx, int posy, float *col, un pixel[0] = col[0]; pixel[1] = col[1]; pixel[2] = col[2]; - pixel[3] = 1; /*col[3];*/ + if (channels==4) { + pixel[3] = 1; /*col[3];*/ + } } } } diff --git a/intern/bmfont/intern/BMF_BitmapFont.h b/intern/bmfont/intern/BMF_BitmapFont.h index 986de2bb399..f8d3d5370dd 100644 --- a/intern/bmfont/intern/BMF_BitmapFont.h +++ b/intern/bmfont/intern/BMF_BitmapFont.h @@ -130,8 +130,9 @@ public: * @param fbuf float image buffer, when NULL to not operate on it. * @param w image buffer width. * @param h image buffer height. + * @param channels number of channels in the image (3 or 4 - currently) */ - void DrawStringBuf(char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h); + void DrawStringBuf(char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h, int channels); protected: /** Pointer to the font data. */ -- cgit v1.2.3 From 77685023caaee092a4c1ed4a3da13ff67861a962 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Tue, 29 Jan 2008 21:01:12 +0000 Subject: Initial commit of cloth modifier from branch rev 13453 --- intern/elbeem/CMakeLists.txt | 4 +++ intern/elbeem/SConscript | 6 +++- intern/elbeem/intern/isosurface.cpp | 56 ++++++++++++++++++++++++++----------- 3 files changed, 48 insertions(+), 18 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/CMakeLists.txt b/intern/elbeem/CMakeLists.txt index 86a60180b05..ac35b8ce00f 100644 --- a/intern/elbeem/CMakeLists.txt +++ b/intern/elbeem/CMakeLists.txt @@ -36,5 +36,9 @@ IF(WINDOWS) ADD_DEFINITIONS(-DUSE_MSVC6FIXES) ENDIF(WINDOWS) +IF(WITH_OPENMP) + ADD_DEFINITIONS(-DPARALLEL) +ENDIF(WITH_OPENMP) + BLENDERLIB_NOLIST(bf_elbeem "${SRC}" "${INC}") #, libtype='blender', priority=0 ) diff --git a/intern/elbeem/SConscript b/intern/elbeem/SConscript index bb6637ba32d..bdcb0507987 100644 --- a/intern/elbeem/SConscript +++ b/intern/elbeem/SConscript @@ -5,7 +5,11 @@ Import('env') sources = env.Glob('intern/*.cpp') -defs = 'NOGUI ELBEEM_BLENDER=1' +defs = ' NOGUI ELBEEM_BLENDER=1' + +if env['WITH_BF_OPENMP'] == 1: + defs += ' PARALLEL' + if env['OURPLATFORM']=='win32-vc': defs += ' USE_MSVC6FIXES' incs = env['BF_PNG_INC'] + ' ' + env['BF_ZLIB_INC'] + ' ' +env['BF_SDL_INC'] diff --git a/intern/elbeem/intern/isosurface.cpp b/intern/elbeem/intern/isosurface.cpp index 1b0ba13c707..f90621f3b73 100644 --- a/intern/elbeem/intern/isosurface.cpp +++ b/intern/elbeem/intern/isosurface.cpp @@ -22,6 +22,10 @@ #define round(x) (x) #endif +#if PARALLEL==1 +#include +#endif + /****************************************************************************** * Constructor *****************************************************************************/ @@ -160,13 +164,6 @@ void IsoSurface::triangulate( void ) mpEdgeVerticesZ[i] = -1; } - ntlVec3Gfx pos[8]; - float value[8]; - int cubeIndex; // index entry of the cube - int triIndices[12]; // vertex indices - int *eVert[12]; - IsoLevelVertex ilv; - // edges between which points? const int mcEdges[24] = { 0,1, 1,2, 2,3, 3,0, @@ -193,7 +190,12 @@ void IsoSurface::triangulate( void ) px = mStart[0]-gsx*0.5; for(int i=1;i<(mSizex-2);i++) { px += gsx; - + int cubeIndex; // index entry of the cube + float value[8]; + int triIndices[12]; // vertex indices + int *eVert[12]; + IsoLevelVertex ilv; + value[0] = *getData(i ,j ,k ); value[1] = *getData(i+1,j ,k ); value[2] = *getData(i+1,j+1,k ); @@ -239,6 +241,7 @@ void IsoSurface::triangulate( void ) eVert[11] = &mpEdgeVerticesZ[ ISOLEVEL_INDEX( i+0, j+1, edgek+0) ]; // grid positions + ntlVec3Gfx pos[8]; pos[0] = ntlVec3Gfx(px ,py ,pz); pos[1] = ntlVec3Gfx(px+gsx,py ,pz); pos[2] = ntlVec3Gfx(px+gsx,py+gsy,pz); @@ -344,10 +347,7 @@ void IsoSurface::triangulate( void ) if(mUseFullEdgeArrays) { errMsg("IsoSurface::triangulate","Disabling mUseFullEdgeArrays!"); } - - // subdiv local arrays - gfxReal orgval[8]; - gfxReal subdAr[2][11][11]; // max 10 subdivs! + ParticleObject* *arppnt = new ParticleObject*[mSizez*mSizey*mSizex]; // construct pointers @@ -408,13 +408,25 @@ void IsoSurface::triangulate( void ) debMsgStd("IsoSurface::triangulate",DM_MSG,"Starting. Parts in use:"< Date: Fri, 1 Feb 2008 12:14:15 +0000 Subject: Memory usage debugging: now with the -d debug option enabled, at the end of rendering it prints memory usage for images and all memory blocks. --- intern/guardedalloc/MEM_guardedalloc.h | 3 ++ intern/guardedalloc/intern/mallocn.c | 85 ++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) (limited to 'intern') diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h index 94276c0454a..73eddff7d8a 100644 --- a/intern/guardedalloc/MEM_guardedalloc.h +++ b/intern/guardedalloc/MEM_guardedalloc.h @@ -106,6 +106,9 @@ extern "C" { /** Print a list of the names and sizes of all allocated memory * blocks. */ void MEM_printmemlist(void); + + /** Print statistics about memory usage */ + void MEM_printmemlist_stats(void); /** Set the callback function for error output. */ void MEM_set_error_callback(void (*func)(char *)); diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index 413f4d80514..c1ddfa71a10 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -332,6 +332,91 @@ void *MEM_mapallocN(unsigned int len, const char *str) #endif } +/* Memory statistics print */ +typedef struct MemPrintBlock { + const char *name; + unsigned long len; + int items; +} MemPrintBlock; + +static int compare_name(const void *p1, const void *p2) +{ + const MemPrintBlock *pb1= (const MemPrintBlock*)p1; + const MemPrintBlock *pb2= (const MemPrintBlock*)p2; + + return strcmp(pb1->name, pb2->name); +} + +static int compare_len(const void *p1, const void *p2) +{ + const MemPrintBlock *pb1= (const MemPrintBlock*)p1; + const MemPrintBlock *pb2= (const MemPrintBlock*)p2; + + if(pb1->len < pb2->len) + return 1; + else if(pb1->len == pb2->len) + return 0; + else + return -1; +} + +void MEM_printmemlist_stats() +{ + MemHead *membl; + MemPrintBlock *pb, *printblock; + int totpb, a, b; + + mem_lock_thread(); + + /* put memory blocks into array */ + printblock= malloc(sizeof(MemPrintBlock)*totblock); + + pb= printblock; + totpb= 0; + + membl = membase->first; + if (membl) membl = MEMNEXT(membl); + + while(membl) { + pb->name= membl->name; + pb->len= membl->len; + pb->items= 1; + + totpb++; + pb++; + + if(membl->next) + membl= MEMNEXT(membl->next); + else break; + } + + /* sort by name and add together blocks with the same name */ + qsort(printblock, totpb, sizeof(MemPrintBlock), compare_name); + for(a=0, b=0; aname, pb->items, (double)pb->len/(double)(1024*1024)); + + free(printblock); + + mem_unlock_thread(); +} /* Prints in python syntax for easy */ static void MEM_printmemlist_internal( int pydict ) -- cgit v1.2.3 From e29dba8a5a39c563d21e6ddf65a2dd147b732c82 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sat, 2 Feb 2008 22:17:23 +0000 Subject: * make sure opennl is in link list for player. I hope I got the priority for non-windows systems ok. --- intern/opennl/SConscript | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/opennl/SConscript b/intern/opennl/SConscript index bcfb030f7e6..e46cefbff58 100644 --- a/intern/opennl/SConscript +++ b/intern/opennl/SConscript @@ -6,7 +6,7 @@ sources = env.Glob('intern/*.c') + env.Glob('superlu/*.c') incs = 'extern superlu' if (env['OURPLATFORM'] == 'win32-mingw'): - env.BlenderLib ('blender_ONL', sources, Split(incs), [], libtype=['core','intern'], priority=[1,80] ) + env.BlenderLib ('blender_ONL', sources, Split(incs), [], libtype=['core','intern','player'], priority=[1,80,22] ) else: - env.BlenderLib ('blender_ONL', sources, Split(incs), [], libtype='core', priority=55 ) + env.BlenderLib ('blender_ONL', sources, Split(incs), [], libtype=['core','player'], priority=[55,22] ) -- cgit v1.2.3 From fd7c729bd17d8c1d8e98003d27e47a58c1c258ec Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Mon, 4 Feb 2008 21:52:03 +0000 Subject: This is patch: [#8216] Make blender compile with gcc 4.3 minus one small include file that was commented out, I'm not sure why it was commented out but I'm pretty sure its needed. If there are still problems later we can sort it out, everything else is pretty simple. Kent --- intern/ghost/intern/GHOST_WindowX11.cpp | 2 ++ intern/string/STR_String.h | 4 ++++ 2 files changed, 6 insertions(+) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp index 30fa30e59e6..0c999587d9b 100644 --- a/intern/ghost/intern/GHOST_WindowX11.cpp +++ b/intern/ghost/intern/GHOST_WindowX11.cpp @@ -42,6 +42,8 @@ #include #endif +#include +#include // For obscure full screen mode stuuf // lifted verbatim from blut. diff --git a/intern/string/STR_String.h b/intern/string/STR_String.h index 2da2b57c6f2..7b02e6c1855 100644 --- a/intern/string/STR_String.h +++ b/intern/string/STR_String.h @@ -47,6 +47,10 @@ #include #include + +#include +#include + using namespace std; -- cgit v1.2.3 From a8145c26f22f72c2756736ef829d2c247dc89d60 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 6 Feb 2008 16:45:51 +0000 Subject: Bugfix: IK solving could go in infinite loop in SVD decomposition, the matrix library used didn't have a maximum iterations check for degenerate cases. --- intern/iksolver/intern/TNT/svd.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/iksolver/intern/TNT/svd.h b/intern/iksolver/intern/TNT/svd.h index af281d0fce0..9ca51fa2650 100644 --- a/intern/iksolver/intern/TNT/svd.h +++ b/intern/iksolver/intern/TNT/svd.h @@ -18,11 +18,13 @@ #include "tntmath.h" +#define SVD_MAX_ITER 200 + namespace TNT { template -void SVD(MaTRiX &A, MaTRiX &U, VecToR &s, MaTRiX &V, VecToR &work1, VecToR &work2) { +void SVD(MaTRiX &A, MaTRiX &U, VecToR &s, MaTRiX &V, VecToR &work1, VecToR &work2, int maxiter=SVD_MAX_ITER) { int m = A.num_rows(); int n = A.num_cols(); @@ -216,7 +218,10 @@ void SVD(MaTRiX &A, MaTRiX &U, VecToR &s, MaTRiX &V, VecToR &work1, VecToR &work int kase=0; k=0; - // Here is where a test for too many iterations would go. + // Test for maximum iterations to avoid infinite loop + if(maxiter == 0) + break; + maxiter--; // This section of the program inspects for // negligible elements in the s and e arrays. On -- cgit v1.2.3 From b7af3d2cbd8dc39e1d133f9c7251cb70cf1aa75b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 16 Feb 2008 16:35:47 +0000 Subject: fix for [#8257] double-freeing pointers from sculpt code http://projects.blender.org/tracker/index.php?func=detail&aid=8257&group_id=9&atid=125 Cleaned up scene_copy, and moved some scene copying into this function that was inline in the user interface. Also moved malloc error prints onto separate lines so you can set breakpoints. --- intern/guardedalloc/intern/mallocn.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index c1ddfa71a10..20d3a5b07fc 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -529,8 +529,10 @@ short MEM_freeN(void *vmemh) /* anders compileertie niet meer */ } else{ error = -1; name = check_memlist(memh); - if (name == 0) MemorY_ErroR("free","pointer not in memlist"); - else MemorY_ErroR(name,"error in header"); + if (name == 0) + MemorY_ErroR("free","pointer not in memlist"); + else + MemorY_ErroR(name,"error in header"); } totblock--; -- cgit v1.2.3 From 19be91823b7fe6e7fcd6f8ccf04a387deb147831 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 24 Feb 2008 21:24:39 +0000 Subject: Bugfix [#8352]: My OpenMP additions seem to cause errors on MSVC, so I kick them leaving 'only' the original OpenMP additions from N_T --- intern/elbeem/intern/isosurface.cpp | 56 +++++++++++-------------------------- 1 file changed, 17 insertions(+), 39 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/intern/isosurface.cpp b/intern/elbeem/intern/isosurface.cpp index f90621f3b73..1b0ba13c707 100644 --- a/intern/elbeem/intern/isosurface.cpp +++ b/intern/elbeem/intern/isosurface.cpp @@ -22,10 +22,6 @@ #define round(x) (x) #endif -#if PARALLEL==1 -#include -#endif - /****************************************************************************** * Constructor *****************************************************************************/ @@ -164,6 +160,13 @@ void IsoSurface::triangulate( void ) mpEdgeVerticesZ[i] = -1; } + ntlVec3Gfx pos[8]; + float value[8]; + int cubeIndex; // index entry of the cube + int triIndices[12]; // vertex indices + int *eVert[12]; + IsoLevelVertex ilv; + // edges between which points? const int mcEdges[24] = { 0,1, 1,2, 2,3, 3,0, @@ -190,12 +193,7 @@ void IsoSurface::triangulate( void ) px = mStart[0]-gsx*0.5; for(int i=1;i<(mSizex-2);i++) { px += gsx; - int cubeIndex; // index entry of the cube - float value[8]; - int triIndices[12]; // vertex indices - int *eVert[12]; - IsoLevelVertex ilv; - + value[0] = *getData(i ,j ,k ); value[1] = *getData(i+1,j ,k ); value[2] = *getData(i+1,j+1,k ); @@ -241,7 +239,6 @@ void IsoSurface::triangulate( void ) eVert[11] = &mpEdgeVerticesZ[ ISOLEVEL_INDEX( i+0, j+1, edgek+0) ]; // grid positions - ntlVec3Gfx pos[8]; pos[0] = ntlVec3Gfx(px ,py ,pz); pos[1] = ntlVec3Gfx(px+gsx,py ,pz); pos[2] = ntlVec3Gfx(px+gsx,py+gsy,pz); @@ -347,7 +344,10 @@ void IsoSurface::triangulate( void ) if(mUseFullEdgeArrays) { errMsg("IsoSurface::triangulate","Disabling mUseFullEdgeArrays!"); } - + + // subdiv local arrays + gfxReal orgval[8]; + gfxReal subdAr[2][11][11]; // max 10 subdivs! ParticleObject* *arppnt = new ParticleObject*[mSizez*mSizey*mSizex]; // construct pointers @@ -408,25 +408,13 @@ void IsoSurface::triangulate( void ) debMsgStd("IsoSurface::triangulate",DM_MSG,"Starting. Parts in use:"< Date: Sun, 24 Feb 2008 22:19:17 +0000 Subject: CMakeList fix for fluids --- intern/elbeem/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/elbeem/CMakeLists.txt b/intern/elbeem/CMakeLists.txt index ac35b8ce00f..48d25901499 100644 --- a/intern/elbeem/CMakeLists.txt +++ b/intern/elbeem/CMakeLists.txt @@ -37,7 +37,7 @@ IF(WINDOWS) ENDIF(WINDOWS) IF(WITH_OPENMP) - ADD_DEFINITIONS(-DPARALLEL) + ADD_DEFINITIONS(-DPARALLEL=1) ENDIF(WITH_OPENMP) BLENDERLIB_NOLIST(bf_elbeem "${SRC}" "${INC}") -- cgit v1.2.3 From 44314581dc934dc99c9504edf671118a9f988b68 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sat, 1 Mar 2008 19:29:01 +0000 Subject: Mem leak fixed in sound buffer & parent invert node --- intern/SoundSystem/openal/SND_OpenALDevice.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'intern') diff --git a/intern/SoundSystem/openal/SND_OpenALDevice.cpp b/intern/SoundSystem/openal/SND_OpenALDevice.cpp index a278384dfd8..bb0204af53b 100644 --- a/intern/SoundSystem/openal/SND_OpenALDevice.cpp +++ b/intern/SoundSystem/openal/SND_OpenALDevice.cpp @@ -332,12 +332,6 @@ SND_OpenALDevice::~SND_OpenALDevice() { MakeCurrent(); - if (m_buffersinitialized) - { - alDeleteBuffers(NUM_BUFFERS, m_buffers); - m_buffersinitialized = false; - } - if (m_sourcesinitialized) { for (int i = 0; i < NUM_SOURCES; i++) @@ -347,6 +341,12 @@ SND_OpenALDevice::~SND_OpenALDevice() m_sourcesinitialized = false; } + if (m_buffersinitialized) + { + alDeleteBuffers(NUM_BUFFERS, m_buffers); + m_buffersinitialized = false; + } + if (m_context) { MakeCurrent(); #ifdef AL_VERSION_1_1 -- cgit v1.2.3 From ffcbff62dd569b880c39084889fe68be76f67f51 Mon Sep 17 00:00:00 2001 From: Ricki Myers Date: Tue, 4 Mar 2008 00:41:30 +0000 Subject: Added Copy and Paste functions to GHOST. - Moved WIN32 code to ghost and added code for other systems. - Added functions getClipboard(flag), and putClipboard(buffer, flag) -Flag is used on X11 to request selection buffer or clipboard. -If any other system uses flag = 1 the function returns doing nothing. - Changed ctrl +c/v and shift+ctrl + c/v to do the same thing (use the clipboard). - Changed the menu items (copy, paste) to use the clipboard. --- intern/ghost/GHOST_C-api.h | 12 +++ intern/ghost/GHOST_ISystem.h | 12 +++ intern/ghost/intern/GHOST_C-api.cpp | 13 +++ intern/ghost/intern/GHOST_System.h | 15 +++ intern/ghost/intern/GHOST_SystemCarbon.cpp | 68 ++++++++++++ intern/ghost/intern/GHOST_SystemCarbon.h | 14 +++ intern/ghost/intern/GHOST_SystemWin32.cpp | 51 +++++++++ intern/ghost/intern/GHOST_SystemWin32.h | 14 +++ intern/ghost/intern/GHOST_SystemX11.cpp | 168 ++++++++++++++++++++++++++++- intern/ghost/intern/GHOST_SystemX11.h | 14 +++ intern/ghost/intern/GHOST_WindowX11.cpp | 19 +++- 11 files changed, 396 insertions(+), 4 deletions(-) (limited to 'intern') diff --git a/intern/ghost/GHOST_C-api.h b/intern/ghost/GHOST_C-api.h index 4c4094409dd..a819713df88 100644 --- a/intern/ghost/GHOST_C-api.h +++ b/intern/ghost/GHOST_C-api.h @@ -758,6 +758,18 @@ extern void GHOST_SetRectangleCenter(GHOST_RectangleHandle rectanglehandle, */ extern GHOST_TSuccess GHOST_ClipRectangle(GHOST_RectangleHandle rectanglehandle, GHOST_RectangleHandle anotherrectanglehandle); + +/** + * Return the data from the clipboad + * @return clipboard data + */ +extern GHOST_TUns8* getClipboard(int flag); + +/** + * Put data to the Clipboard + */ +extern void putClipboard(GHOST_TInt8 *buffer, int flag); + #ifdef __cplusplus } #endif diff --git a/intern/ghost/GHOST_ISystem.h b/intern/ghost/GHOST_ISystem.h index dffd81bdb13..5e0473203db 100644 --- a/intern/ghost/GHOST_ISystem.h +++ b/intern/ghost/GHOST_ISystem.h @@ -336,6 +336,18 @@ public: */ virtual GHOST_TSuccess getButtonState(GHOST_TButtonMask mask, bool& isDown) const = 0; + /** + * Returns the selection buffer + * @return Returns "unsinged char" from X11 XA_CUT_BUFFER0 buffer + * + */ + virtual GHOST_TUns8* getClipboard(int flag) const = 0; + + /** + * Put data to the Clipboard + */ + virtual void putClipboard(GHOST_TInt8 *buffer, int flag) const = 0; + protected: /** * Initialize the system. diff --git a/intern/ghost/intern/GHOST_C-api.cpp b/intern/ghost/intern/GHOST_C-api.cpp index c2b8eca9573..6943e85f12f 100644 --- a/intern/ghost/intern/GHOST_C-api.cpp +++ b/intern/ghost/intern/GHOST_C-api.cpp @@ -802,3 +802,16 @@ GHOST_TSuccess GHOST_ClipRectangle(GHOST_RectangleHandle rectanglehandle, return result; } + +GHOST_TUns8* getClipboard(int flag) +{ + GHOST_ISystem* system = GHOST_ISystem::getSystem(); + return system->getClipboard(flag); +} + +void putClipboard(GHOST_TInt8 *buffer, int flag) +{ + GHOST_ISystem* system = GHOST_ISystem::getSystem(); + system->putClipboard(buffer, flag); +} + diff --git a/intern/ghost/intern/GHOST_System.h b/intern/ghost/intern/GHOST_System.h index 85e7b2d6b44..1ded6e77a36 100644 --- a/intern/ghost/intern/GHOST_System.h +++ b/intern/ghost/intern/GHOST_System.h @@ -257,6 +257,21 @@ public: */ virtual GHOST_TSuccess getButtons(GHOST_Buttons& buttons) const = 0; + /** + * Returns the selection buffer + * @param flag Only used on X11 + * @return Returns the clipboard data + * + */ + virtual GHOST_TUns8* getClipboard(int flag) const = 0; + + /** + * Put data to the Clipboard + * @param buffer The buffer to copy to the clipboard + * @param flag The clipboard to copy too only used on X11 + */ + virtual void putClipboard(GHOST_TInt8 *buffer, int flag) const = 0; + protected: /** * Initialize the system. diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp index e1e3853e8a8..46c0f51ede0 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.cpp +++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp @@ -1065,3 +1065,71 @@ OSStatus GHOST_SystemCarbon::sEventHandlerProc(EventHandlerCallRef handler, Even return err; } + +GHOST_TUns8* GHOST_SystemCarbon::getClipboard(int flag) const +{ + PasteboardRef inPasteboard; + PasteboardItemID itemID; + CFDataRef flavorData; + OSStatus err = noErr; + GHOST_TUns8 * temp_buff; + CFRange range; + + err = PasteboardCreate(kPasteboardClipboard, &inPasteboard); + if(err != noErr) { return NULL;} + + err = PasteboardSynchronize( inPasteboard ); + if(err != noErr) { return NULL;} + + err = PasteboardGetItemIdentifier( inPasteboard, 1, &itemID ); + if(err != noErr) { return NULL;} + + err = PasteboardCopyItemFlavorData( inPasteboard, itemID, CFSTR("public.utf8-plain-text"), &flavorData); + if(err != noErr) { return NULL;} + + range = CFRangeMake(0, CFDataGetLength(flavorData)); + + temp_buff = (GHOST_TUns8*) malloc(range.length+1); + + CFDataGetBytes(flavorData, range, (UInt8*)temp_buff); + + temp_buff[range.length] = '\0'; + + if(temp_buff) { + return temp_buff; + } else { + return NULL; + } +} + +void GHOST_SystemCarbon::putClipboard(GHOST_TInt8 *buffer, int flag) const +{ + if(flag == 1) {return;} //If Flag is 1 means the selection and is used on X11 + PasteboardRef inPasteboard; + CFDataRef textData = NULL; + OSStatus err = noErr; /*For error checking*/ + + err = PasteboardCreate(kPasteboardClipboard, &inPasteboard); + if(err != noErr) { return;} + + err = PasteboardSynchronize( inPasteboard ); + if(err != noErr) { return;} + + err = PasteboardClear( inPasteboard ); + if(err != noErr) { return;} + + textData = CFDataCreate(kCFAllocatorDefault, (UInt8*)buffer, strlen(buffer)); + + if (textData) { + err = PasteboardPutItemFlavor( inPasteboard, (PasteboardItemID)1, CFSTR("public.utf8-plain-text"), textData, 0); + if(err != noErr) { + if(textData) { CFRelease(textData);} + return; + } + } + + if(textData) { + CFRelease(textData); + } +} + diff --git a/intern/ghost/intern/GHOST_SystemCarbon.h b/intern/ghost/intern/GHOST_SystemCarbon.h index 93022aa78ff..dc03cd2a84d 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.h +++ b/intern/ghost/intern/GHOST_SystemCarbon.h @@ -168,6 +168,20 @@ public: */ virtual GHOST_TSuccess getButtons(GHOST_Buttons& buttons) const; + /** + * Returns Clipboard data + * @param flag Indicate which buffer to return + * @return Returns the selected buffer + */ + virtual GHOST_TUns8* GHOST_SystemCarbon::getClipboard(int flag) const; + + /** + * Puts buffer to system clipboard + * @param buffer The buffer to be copied + * @param flag Indicates which buffer to copy too Only used on X11 + */ + virtual void putClipboard(GHOST_TInt8 *buffer, int flag) const; + protected: /** * Initializes the system. diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 835f7da3038..0090b7ec93f 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -873,3 +873,54 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam, } return lResult; } + +GHOST_TUns8* GHOST_SystemWin32::getClipboard(int flag) const +{ + char *buffer; + char *temp_buff; + + if ( OpenClipboard(NULL) ) { + HANDLE hData = GetClipboardData( CF_TEXT ); + buffer = (char*)GlobalLock( hData ); + + temp_buff = (char*) malloc(strlen(buffer)+1); + strcpy(temp_buff, buffer); + + GlobalUnlock( hData ); + CloseClipboard(); + + temp_buff[strlen(buffer)] = '\0'; + if (buffer) { + return (GHOST_TUns8*)temp_buff; + } else { + return NULL; + } + } else { + return NULL; + } +} + +void GHOST_SystemWin32::putClipboard(GHOST_TInt8 *buffer, int flag) const +{ + if(flag == 1) {return;} //If Flag is 1 means the selection and is used on X11 + if (OpenClipboard(NULL)) { + HLOCAL clipbuffer; + char *data; + + if (buffer) { + EmptyClipboard(); + + clipbuffer = LocalAlloc(LMEM_FIXED,((strlen(buffer)+1))); + data = (char*)GobalLock(clipbuffer); + + strcpy(data, (char*)buffer); + data[strlen(buffer)] = '\0'; + LocalUnlock(clipbuffer); + SetClipboardData(CF_TEXT,clipbuffer); + } + CloseClipboard(); + } else { + return; + } +} + diff --git a/intern/ghost/intern/GHOST_SystemWin32.h b/intern/ghost/intern/GHOST_SystemWin32.h index 218fc5794eb..762e5a988a4 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.h +++ b/intern/ghost/intern/GHOST_SystemWin32.h @@ -170,6 +170,20 @@ public: */ virtual GHOST_TSuccess getButtons(GHOST_Buttons& buttons) const; + /** + * Returns unsinged char from CUT_BUFFER0 + * @param flag Flag is not used on win32 on used on X11 + * @return Returns the Clipboard + */ + virtual GHOST_TUns8* getClipboard(int flag) const; + + /** + * Puts buffer to system clipboard + * @param flag Flag is not used on win32 on used on X11 + * @return No return + */ + virtual void putClipboard(GHOST_TInt8 *buffer, int flag) const; + protected: /** * Initializes the system. diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 14383ad3624..cfd77e5cef1 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -95,6 +95,9 @@ #include #include +//these are for copy and select copy +static char *txt_cut_buffer= NULL; +static char *txt_select_buffer= NULL; using namespace std; @@ -336,7 +339,7 @@ GHOST_SystemX11::processEvent(XEvent *xe) if (!window) { return; } - + switch (xe->type) { case Expose: { @@ -504,8 +507,57 @@ GHOST_SystemX11::processEvent(XEvent *xe) case MappingNotify: case ReparentNotify: break; - - default: { + case SelectionRequest: + { + XEvent nxe; + Atom target, string, compound_text, c_string; + XSelectionRequestEvent *xse = &xe->xselectionrequest; + + target = XInternAtom(m_display, "TARGETS", False); + string = XInternAtom(m_display, "STRING", False); + compound_text = XInternAtom(m_display, "COMPOUND_TEXT", False); + c_string = XInternAtom(m_display, "C_STRING", False); + + /* support obsolete clients */ + if (xse->property == None) { + xse->property = xse->target; + } + + nxe.xselection.type = SelectionNotify; + nxe.xselection.requestor = xse->requestor; + nxe.xselection.property = xse->property; + nxe.xselection.display = xse->display; + nxe.xselection.selection = xse->selection; + nxe.xselection.target = xse->target; + nxe.xselection.time = xse->time; + + /*Check to see if the requestor is asking for String*/ + if(xse->target == string || xse->target == compound_text || xse->target == c_string) { + if (xse->selection == XInternAtom(m_display, "PRIMARY", False)) { + XChangeProperty(m_display, xse->requestor, xse->property, xse->target, 8, PropModeReplace, (unsigned char*)txt_select_buffer, strlen(txt_select_buffer)); + } else if (xse->selection == XInternAtom(m_display, "CLIPBOARD", False)) { + XChangeProperty(m_display, xse->requestor, xse->property, xse->target, 8, PropModeReplace, (unsigned char*)txt_cut_buffer, strlen(txt_cut_buffer)); + } + } else if (xse->target == target) { + Atom alist[4]; + alist[0] = target; + alist[1] = string; + alist[2] = compound_text; + alist[3] = c_string; + XChangeProperty(m_display, xse->requestor, xse->property, xse->target, 32, PropModeReplace, (unsigned char*)alist, 4); + XFlush(m_display); + } else { + //Change property to None because we do not support anything but STRING + nxe.xselection.property = None; + } + + //Send the event to the client 0 0 == False, SelectionNotify + XSendEvent(m_display, xse->requestor, 0, 0, &nxe); + XFlush(m_display); + break; + } + + default: { if(xe->type == window->GetXTablet().MotionEvent) { XDeviceMotionEvent* data = (XDeviceMotionEvent*)xe; @@ -876,3 +928,113 @@ convertXKey( } #undef GXMAP + + GHOST_TUns8* +GHOST_SystemX11:: +getClipboard(int flag +) const { + //Flag + //0 = Regular clipboard 1 = selection + static Atom Primary_atom, clip_String, compound_text; + Atom rtype; + Window m_window, owner; + unsigned char *data, *tmp_data; + int bits; + unsigned long len, bytes; + XEvent xevent; + + vector & win_vec = m_windowManager->getWindows(); + vector::iterator win_it = win_vec.begin(); + GHOST_WindowX11 * window = static_cast(*win_it); + m_window = window->getXWindow(); + + clip_String = XInternAtom(m_display, "_BLENDER_STRING", False); + compound_text = XInternAtom(m_display, "COMPOUND_TEXT", False); + + //lets check the owner and if it is us then return the static buffer + if(flag == 0) { + Primary_atom = XInternAtom(m_display, "CLIPBOARD", False); + owner = XGetSelectionOwner(m_display, Primary_atom); + if (owner == m_window) { + data = (unsigned char*) malloc(strlen(txt_cut_buffer)); + strcpy((char*)data, txt_cut_buffer); + return (GHOST_TUns8*)data; + } else if (owner == None) { + return NULL; + } + } else { + Primary_atom = XInternAtom(m_display, "PRIMARY", False); + owner = XGetSelectionOwner(m_display, Primary_atom); + if (owner == m_window) { + data = (unsigned char*) malloc(strlen(txt_select_buffer)); + strcpy((char*)data, txt_select_buffer); + return (GHOST_TUns8*)data; + } else if (owner == None) { + return NULL; + } + } + + if(!Primary_atom) { + return NULL; + } + + XDeleteProperty(m_display, m_window, Primary_atom); + XConvertSelection(m_display, Primary_atom, compound_text, clip_String, m_window, CurrentTime); //XA_STRING + XFlush(m_display); + + //This needs to change so we do not wait for ever or check owner first + while(1) { + XNextEvent(m_display, &xevent); + if(xevent.type == SelectionNotify) { + if(XGetWindowProperty(m_display, m_window, xevent.xselection.property, 0L, 4096L, False, AnyPropertyType, &rtype, &bits, &len, &bytes, &data) == Success) { + tmp_data = (unsigned char*) malloc(strlen((char*)data)); + strcpy((char*)tmp_data, (char*)data); + XFree(data); + return (GHOST_TUns8*)tmp_data; + } + return NULL; + } + } +} + + void +GHOST_SystemX11:: +putClipboard( +GHOST_TInt8 *buffer, int flag) const +{ + static Atom Primary_atom; + Window m_window, owner; + + if(!buffer) {return;} + + if(flag == 0) { + Primary_atom = XInternAtom(m_display, "CLIPBOARD", False); + if(txt_cut_buffer) { free((void*)txt_cut_buffer); } + + txt_cut_buffer = (char*) malloc(strlen(buffer)); + strcpy(txt_cut_buffer, buffer); + } else { + Primary_atom = XInternAtom(m_display, "PRIMARY", False); + if(txt_select_buffer) { free((void*)txt_select_buffer); } + + txt_select_buffer = (char*) malloc(strlen(buffer)); + strcpy(txt_select_buffer, buffer); + } + + vector & win_vec = m_windowManager->getWindows(); + vector::iterator win_it = win_vec.begin(); + GHOST_WindowX11 * window = static_cast(*win_it); + m_window = window->getXWindow(); + + if(!Primary_atom) { + return; + } + + XSetSelectionOwner(m_display, Primary_atom, m_window, CurrentTime); + owner = XGetSelectionOwner(m_display, Primary_atom); + if (owner != m_window) + printf("failed to own primary\n"); + + return; +} + diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h index c8d8d73404a..0e947c12fde 100644 --- a/intern/ghost/intern/GHOST_SystemX11.h +++ b/intern/ghost/intern/GHOST_SystemX11.h @@ -196,7 +196,21 @@ public: return m_display; } + /** + * Returns unsinged char from CUT_BUFFER0 + * @param flag Flag indicates which buffer to return 0 for clipboard 1 for selection + * @return Returns the Clipboard indicated by Flag + */ + GHOST_TUns8* + getClipboard(int flag) const; + /** + * Puts buffer to system clipboard + * @param buffer The buffer to copy to the clipboard + * @param flag Flag indicates which buffer to set ownership of 0 for clipboard 1 for selection + */ + virtual void putClipboard(GHOST_TInt8 *buffer, int flag) const; + private : Display * m_display; diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp index 0c999587d9b..1b9b3c491d5 100644 --- a/intern/ghost/intern/GHOST_WindowX11.cpp +++ b/intern/ghost/intern/GHOST_WindowX11.cpp @@ -204,7 +204,7 @@ GHOST_WindowX11( KeyPressMask | KeyReleaseMask | EnterWindowMask | LeaveWindowMask | ButtonPressMask | ButtonReleaseMask | - PointerMotionMask | FocusChangeMask; + PointerMotionMask | FocusChangeMask | PropertyChangeMask; // create the window! @@ -766,6 +766,15 @@ validate( GHOST_WindowX11:: ~GHOST_WindowX11( ){ + static Atom Primary_atom, Clipboard_atom; + Window p_owner, c_owner; + /*Change the owner of the Atoms to None if we are the owner*/ + Primary_atom = XInternAtom(m_display, "PRIMARY", False); + Clipboard_atom = XInternAtom(m_display, "CLIPBOARD", False); + + p_owner = XGetSelectionOwner(m_display, Primary_atom); + c_owner = XGetSelectionOwner(m_display, Clipboard_atom); + std::map::iterator it = m_standard_cursors.begin(); for (; it != m_standard_cursors.end(); it++) { XFreeCursor(m_display, it->second); @@ -784,6 +793,14 @@ GHOST_WindowX11:: } glXDestroyContext(m_display, m_context); } + + if (p_owner == m_window) { + XSetSelectionOwner(m_display, Primary_atom, None, CurrentTime); + } + if (c_owner == m_window) { + XSetSelectionOwner(m_display, Clipboard_atom, None, CurrentTime); + } + XDestroyWindow(m_display, m_window); XFree(m_visual); } -- cgit v1.2.3 From 6122ee1b21f7e8b8a7509e868e1db813f5fbd72b Mon Sep 17 00:00:00 2001 From: Ricki Myers Date: Tue, 4 Mar 2008 02:43:51 +0000 Subject: change error in typing GlobalLock on line 914 --- intern/ghost/intern/GHOST_SystemWin32.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 0090b7ec93f..c423fbd29ad 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -911,7 +911,7 @@ void GHOST_SystemWin32::putClipboard(GHOST_TInt8 *buffer, int flag) const EmptyClipboard(); clipbuffer = LocalAlloc(LMEM_FIXED,((strlen(buffer)+1))); - data = (char*)GobalLock(clipbuffer); + data = (char*)GlobalLock(clipbuffer); strcpy(data, (char*)buffer); data[strlen(buffer)] = '\0'; -- cgit v1.2.3 From 3796abf092c9de4d43131dbce05102b126e14896 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 6 Mar 2008 21:01:55 +0000 Subject: * on win32 with msvc USE_OPENAL was defined for the entire source. Made it so that it is defined only there where needed when needed. * dxguid is necessary only when building WITH_BF_OPENAL=1. I already added the mingw version to our SVN in lib/windows/openal/lib and now I made sure it is linked against only when needed. --- intern/SoundSystem/SConscript | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'intern') diff --git a/intern/SoundSystem/SConscript b/intern/SoundSystem/SConscript index a9c1110c09a..baf680f03f0 100644 --- a/intern/SoundSystem/SConscript +++ b/intern/SoundSystem/SConscript @@ -7,10 +7,11 @@ sources = env.Glob('dummy/*.cpp') + env.Glob('intern/*.cpp') incs = '. intern ../moto/include ../string dummy openal sdl' defs = '' if env['WITH_BF_OPENAL']: - sources += env.Glob('openal/*.cpp') + env.Glob('sdl/*.cpp') - incs += ' ' + env['BF_OPENAL_INC'] - incs += ' ' + env['BF_SDL_INC'] + sources += env.Glob('openal/*.cpp') + env.Glob('sdl/*.cpp') + incs += ' ' + env['BF_OPENAL_INC'] + incs += ' ' + env['BF_SDL_INC'] + defs = 'USE_OPENAL' else: - defs = 'NO_SOUND' + defs = 'NO_SOUND' env.BlenderLib ('bf_soundsystem', sources, Split(incs), Split(defs), libtype=['core','player'], priority = [20,140] ) -- cgit v1.2.3 From 7a3c9bb5d1ab5adfdb243b66b44a9a527964fd83 Mon Sep 17 00:00:00 2001 From: Stephen Swaney Date: Fri, 7 Mar 2008 01:19:36 +0000 Subject: Remove extraneous class qualifiers for gcc 4.2 / 4.3 on OSX. Thanks go to jensverwiebe via IRC. --- intern/ghost/intern/GHOST_SystemCarbon.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemCarbon.h b/intern/ghost/intern/GHOST_SystemCarbon.h index dc03cd2a84d..14d4f67290c 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.h +++ b/intern/ghost/intern/GHOST_SystemCarbon.h @@ -60,12 +60,12 @@ public: /** * Constructor. */ - GHOST_SystemCarbon::GHOST_SystemCarbon(); + GHOST_SystemCarbon(); /** * Destructor. */ - GHOST_SystemCarbon::~GHOST_SystemCarbon(); + ~GHOST_SystemCarbon(); /*************************************************************************************** ** Time(r) functionality @@ -173,7 +173,7 @@ public: * @param flag Indicate which buffer to return * @return Returns the selected buffer */ - virtual GHOST_TUns8* GHOST_SystemCarbon::getClipboard(int flag) const; + virtual GHOST_TUns8* getClipboard(int flag) const; /** * Puts buffer to system clipboard -- cgit v1.2.3 From b5cdd1f2d6e834dde4a0cdbec1a1bf2874e8a88d Mon Sep 17 00:00:00 2001 From: Ricki Myers Date: Sat, 8 Mar 2008 04:22:52 +0000 Subject: Changed getClipbaord and putClipboard functions to be more ghost like Changed getClipboard to GHOST_getClipboard and putClipboard to GHOST_putClipboard Removed ghost calls from blender and added the calls to winlay.h and ghostwinlay.c This cleand up casts in drawtext.c --- intern/ghost/GHOST_C-api.h | 4 ++-- intern/ghost/intern/GHOST_C-api.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'intern') diff --git a/intern/ghost/GHOST_C-api.h b/intern/ghost/GHOST_C-api.h index a819713df88..c4a2da5e7de 100644 --- a/intern/ghost/GHOST_C-api.h +++ b/intern/ghost/GHOST_C-api.h @@ -763,12 +763,12 @@ extern GHOST_TSuccess GHOST_ClipRectangle(GHOST_RectangleHandle rectanglehandle, * Return the data from the clipboad * @return clipboard data */ -extern GHOST_TUns8* getClipboard(int flag); +extern GHOST_TUns8* GHOST_getClipboard(int flag); /** * Put data to the Clipboard */ -extern void putClipboard(GHOST_TInt8 *buffer, int flag); +extern void GHOST_putClipboard(GHOST_TInt8 *buffer, int flag); #ifdef __cplusplus } diff --git a/intern/ghost/intern/GHOST_C-api.cpp b/intern/ghost/intern/GHOST_C-api.cpp index 6943e85f12f..60634eeff8c 100644 --- a/intern/ghost/intern/GHOST_C-api.cpp +++ b/intern/ghost/intern/GHOST_C-api.cpp @@ -803,13 +803,13 @@ GHOST_TSuccess GHOST_ClipRectangle(GHOST_RectangleHandle rectanglehandle, return result; } -GHOST_TUns8* getClipboard(int flag) +GHOST_TUns8* GHOST_getClipboard(int flag) { GHOST_ISystem* system = GHOST_ISystem::getSystem(); return system->getClipboard(flag); } -void putClipboard(GHOST_TInt8 *buffer, int flag) +void GHOST_putClipboard(GHOST_TInt8 *buffer, int flag) { GHOST_ISystem* system = GHOST_ISystem::getSystem(); system->putClipboard(buffer, flag); -- cgit v1.2.3 From 3444d6612a525b879857c60d49165efb01f77529 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Wed, 12 Mar 2008 21:33:24 +0000 Subject: Delta Loc/Rot/Scale Ipo curve are now supporting in the BGE with the following limitations: 1. All Ipo channels are now independent. In Blender 2.45, all 3 Loc Ipo channels were automatically set together. For example, having just a LocX Ipo channel was sufficient to fix the X, Y and Z coordinates, with the Y and Z value taken from the object original Y and Z location in Blender. The same was true for the 3 Rot and the 3 Scale Ipo channels: the missing channels were assumed to have constant value taken from the object original orientation/scale in Blender. With this patch, all Ipo channels are now independent. THIS WILL CREATE BACKWARD COMPATIBILITY PROBLEM if you omit to define the 3 channels of a same type together in your Blend file: the undefined Loc, Rot, Scale coordinates of the object will be influenced by the parent/spawner Loc/Rot/Scale in case the object is a child or dynamically created. 2. Delta Loc, Rot, Scale are now supported with the following limitations: - The delta Loc/Rot Ipo modify the object global (NOT local) location/orientation - The delta Scale change the object local scale - The delta Ipo curves are relative to the object starting Loc/Rot/Scale when the Ipo was first activated; after that, the delta Ipo becomes global. This means that the object will return to this initial Loc/Rot/Scale when you later restart the Ipo curve, even if you had changed the object Loc/Rot/Scale in the meantime. Of course this applies only to the specific Loc/Rot/Scale coordinate that are defined in the Ipo channels as the channels are now independent. 3. When the objects are converted from Blender to the BGE, the delta Loc/Rot/Scale that might result from initial non-zero values in delta Ipo Curves will be ignored. However, as soon as the delta Ipo curve is activated, the non-zero values will be taken into account and the object will jump to the same Loc/Rot/Scale situation as in Blender. Note that delta Ipo curves with initial non-zero values is bad practice; logically, a delta Ipo curver should always start from 0. 4. If you define both a global and delta channel of the same type (LocX and DLocX), the result will be a global channel equivalent to the sum of the two channels (LocX+DLocX). --- intern/moto/include/MT_Matrix3x3.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'intern') diff --git a/intern/moto/include/MT_Matrix3x3.h b/intern/moto/include/MT_Matrix3x3.h index fb899a7da96..98851e73040 100644 --- a/intern/moto/include/MT_Matrix3x3.h +++ b/intern/moto/include/MT_Matrix3x3.h @@ -147,6 +147,26 @@ public: -sj, cj * si, cj * ci); } + void getEuler(MT_Scalar& yaw, MT_Scalar& pitch, MT_Scalar& roll) const + { + if (m_el[2][0] != -1.0 && m_el[2][0] != 1.0) { + pitch = MT_Scalar(-asin(m_el[2][0])); + yaw = MT_Scalar(atan2(m_el[2][1] / cos(pitch), m_el[2][2] / cos(pitch))); + roll = MT_Scalar(atan2(m_el[1][0] / cos(pitch), m_el[0][0] / cos(pitch))); + } + else { + roll = MT_Scalar(0); + if (m_el[2][0] == -1.0) { + pitch = MT_PI / 2.0; + yaw = MT_Scalar(atan2(m_el[0][1], m_el[0][2])); + } + else { + pitch = - MT_PI / 2.0; + yaw = MT_Scalar(atan2(m_el[0][1], m_el[0][2])); + } + } + } + void scale(MT_Scalar x, MT_Scalar y, MT_Scalar z) { m_el[0][0] *= x; m_el[0][1] *= y; m_el[0][2] *= z; m_el[1][0] *= x; m_el[1][1] *= y; m_el[1][2] *= z; -- cgit v1.2.3 From f0316e0ea21fa5d5101cfa02b405f3c500e7afae Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 12 Mar 2008 21:38:51 +0000 Subject: oddly enough this printf was the only problem compiling blender with GCC 4.3 --- intern/ghost/intern/GHOST_SystemX11.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index cfd77e5cef1..55881b1f007 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -95,6 +95,9 @@ #include #include + +#include // for fprintf only + //these are for copy and select copy static char *txt_cut_buffer= NULL; static char *txt_select_buffer= NULL; @@ -1033,7 +1036,7 @@ GHOST_TInt8 *buffer, int flag) const XSetSelectionOwner(m_display, Primary_atom, m_window, CurrentTime); owner = XGetSelectionOwner(m_display, Primary_atom); if (owner != m_window) - printf("failed to own primary\n"); + fprintf(stderr, "failed to own primary\n"); return; } -- cgit v1.2.3 From 526d0bec4722900a86d81ff0f5d71504b2b4ad8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Thu, 13 Mar 2008 15:40:24 +0000 Subject: final (??) work on NDOF branch it is now in a state where it can be safely merged with trunk. Note: basic icons were provided but I'm not an icondesigner and working in a 16x15 grid is way too small for me, so feel free to change them. --- intern/ghost/GHOST_C-api.h | 5 +---- intern/ghost/GHOST_ISystem.h | 2 +- intern/ghost/intern/GHOST_C-api.cpp | 2 +- intern/ghost/intern/GHOST_NDOFManager.cpp | 28 +++++++++------------------- intern/ghost/intern/GHOST_NDOFManager.h | 2 +- intern/ghost/intern/GHOST_System.cpp | 7 ++----- intern/ghost/intern/GHOST_System.h | 3 ++- 7 files changed, 17 insertions(+), 32 deletions(-) (limited to 'intern') diff --git a/intern/ghost/GHOST_C-api.h b/intern/ghost/GHOST_C-api.h index 568437b4231..2b17b8f8c61 100644 --- a/intern/ghost/GHOST_C-api.h +++ b/intern/ghost/GHOST_C-api.h @@ -272,15 +272,12 @@ extern GHOST_TSuccess GHOST_AddEventConsumer(GHOST_SystemHandle systemhandle, /** * Open N-degree of freedom devices */ -extern void GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, +extern int GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, GHOST_WindowHandle windowhandle, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen ); - - // original patch only - // GHOST_NDOFEventHandler_fp setNdofEventHandler); /*************************************************************************************** ** Cursor management functionality diff --git a/intern/ghost/GHOST_ISystem.h b/intern/ghost/GHOST_ISystem.h index 541a78cbaa9..381aac64de0 100644 --- a/intern/ghost/GHOST_ISystem.h +++ b/intern/ghost/GHOST_ISystem.h @@ -302,7 +302,7 @@ public: /** * Starts the N-degree of freedom device manager */ - virtual void openNDOF(GHOST_IWindow*, + virtual int openNDOF(GHOST_IWindow*, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen diff --git a/intern/ghost/intern/GHOST_C-api.cpp b/intern/ghost/intern/GHOST_C-api.cpp index 8fa79261483..054cd507d1d 100644 --- a/intern/ghost/intern/GHOST_C-api.cpp +++ b/intern/ghost/intern/GHOST_C-api.cpp @@ -259,7 +259,7 @@ GHOST_TSuccess GHOST_AddEventConsumer(GHOST_SystemHandle systemhandle, GHOST_Eve return system->addEventConsumer((GHOST_CallbackEventConsumer*)consumerhandle); } -void GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, GHOST_WindowHandle windowhandle, +int GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, GHOST_WindowHandle windowhandle, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen) diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp index 501d6c57dd5..5254952f03c 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.cpp +++ b/intern/ghost/intern/GHOST_NDOFManager.cpp @@ -57,19 +57,22 @@ GHOST_NDOFManager::~GHOST_NDOFManager() } -void +int GHOST_NDOFManager::deviceOpen(GHOST_IWindow* window, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen) { + int Pid; + ndofLibraryInit = setNdofLibraryInit; ndofLibraryShutdown = setNdofLibraryShutdown; ndofDeviceOpen = setNdofDeviceOpen; if (ndofLibraryInit && ndofDeviceOpen) { - printf("%i client \n", ndofLibraryInit()); + Pid= ndofLibraryInit(); + printf("%i client \n", Pid); #if defined(_WIN32) || defined(__APPLE__) m_DeviceHandle = ndofDeviceOpen((void *)¤tNdofValues); #else @@ -78,26 +81,13 @@ GHOST_NDOFManager::deviceOpen(GHOST_IWindow* window, void *ndofInfo = sys->prepareNdofInfo(¤tNdofValues); m_DeviceHandle = ndofDeviceOpen(ndofInfo); #endif - } + return (Pid > 0) ? 0 : 1; + + } else + return 1; } -/** original patch only */ -/* -GHOST_TEventNDOFData* -GHOST_NDOFManager::handle(unsigned int message, unsigned int* wParam, unsigned long* lParam) -{ - static GHOST_TEventNDOFData sbdata; - int handled = 0; - if (ndofEventHandler && m_DeviceHandle != 0) - { - handled = ndofEventHandler(&sbdata.tx, m_DeviceHandle, message, wParam, lParam); - } - printf("handled %i\n", handled); - return handled ? &sbdata : 0; -} -*/ - bool GHOST_NDOFManager::available() const { diff --git a/intern/ghost/intern/GHOST_NDOFManager.h b/intern/ghost/intern/GHOST_NDOFManager.h index c1f0b2c80af..18d651b89af 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.h +++ b/intern/ghost/intern/GHOST_NDOFManager.h @@ -34,7 +34,7 @@ public: GHOST_NDOFManager(); virtual ~GHOST_NDOFManager(); - void deviceOpen(GHOST_IWindow* window, + int deviceOpen(GHOST_IWindow* window, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen); diff --git a/intern/ghost/intern/GHOST_System.cpp b/intern/ghost/intern/GHOST_System.cpp index 674b1f67d55..a083dfd88d6 100644 --- a/intern/ghost/intern/GHOST_System.cpp +++ b/intern/ghost/intern/GHOST_System.cpp @@ -240,18 +240,15 @@ GHOST_TSuccess GHOST_System::pushEvent(GHOST_IEvent* event) return success; } -void GHOST_System::openNDOF(GHOST_IWindow* w, +int GHOST_System::openNDOF(GHOST_IWindow* w, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen) -// original patch only -// GHOST_NDOFEventHandler_fp setNdofEventHandler) { - m_ndofManager->deviceOpen(w, + return m_ndofManager->deviceOpen(w, setNdofLibraryInit, setNdofLibraryShutdown, setNdofDeviceOpen); - // setNdofEventHandler); } diff --git a/intern/ghost/intern/GHOST_System.h b/intern/ghost/intern/GHOST_System.h index a45196ee3da..4c797fbaa80 100644 --- a/intern/ghost/intern/GHOST_System.h +++ b/intern/ghost/intern/GHOST_System.h @@ -193,8 +193,9 @@ public: /** Inherited from GHOST_ISystem * Opens the N-degree of freedom device manager + * return 0 if device found, 1 otherwise */ - virtual void openNDOF(GHOST_IWindow* w, + virtual int openNDOF(GHOST_IWindow* w, GHOST_NDOFLibraryInit_fp setNdofLibraryInit, GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown, GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen); -- cgit v1.2.3 From def3575575177774a494702fff4febc4b5b9da5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Fri, 14 Mar 2008 19:44:32 +0000 Subject: forgot return value in C-api spotted by JM Soler --- intern/ghost/intern/GHOST_C-api.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_C-api.cpp b/intern/ghost/intern/GHOST_C-api.cpp index 8c93788ee1b..fe5ed2bf86a 100644 --- a/intern/ghost/intern/GHOST_C-api.cpp +++ b/intern/ghost/intern/GHOST_C-api.cpp @@ -268,7 +268,7 @@ int GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, GHOST_WindowHandle windowhan { GHOST_ISystem* system = (GHOST_ISystem*) systemhandle; - system->openNDOF((GHOST_IWindow*) windowhandle, + return system->openNDOF((GHOST_IWindow*) windowhandle, setNdofLibraryInit, setNdofLibraryShutdown, setNdofDeviceOpen); // original patch // setNdofLibraryInit, setNdofLibraryShutdown, setNdofDeviceOpen, setNdofEventHandler); -- cgit v1.2.3 From bb48a75c37e85fd5cc77ebd1c585f575932fb305 Mon Sep 17 00:00:00 2001 From: Stephen Swaney Date: Sat, 15 Mar 2008 14:41:47 +0000 Subject: compiler warning cleanup --- intern/guardedalloc/intern/mallocn.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index 20d3a5b07fc..af9443428f7 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -114,8 +114,8 @@ static const char *check_memlist(MemHead *memh); volatile int totblock= 0; volatile unsigned long mem_in_use= 0, mmap_in_use= 0; -volatile static struct localListBase _membase; -volatile static struct localListBase *membase = &_membase; +static volatile struct localListBase _membase; +static volatile struct localListBase *membase = &_membase; static void (*error_callback)(char *) = NULL; static void (*thread_lock_callback)(void) = NULL; static void (*thread_unlock_callback)(void) = NULL; -- cgit v1.2.3 From c8813776c491f2f503e8cb4ab7cc321e487330b5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 18 Mar 2008 16:12:43 +0000 Subject: Added null check to prevent crashing on paste. Should look into why XGetWindowProperty isnt working also. --- intern/ghost/intern/GHOST_SystemX11.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 55881b1f007..0329241045f 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -990,10 +990,12 @@ getClipboard(int flag XNextEvent(m_display, &xevent); if(xevent.type == SelectionNotify) { if(XGetWindowProperty(m_display, m_window, xevent.xselection.property, 0L, 4096L, False, AnyPropertyType, &rtype, &bits, &len, &bytes, &data) == Success) { - tmp_data = (unsigned char*) malloc(strlen((char*)data)); - strcpy((char*)tmp_data, (char*)data); - XFree(data); - return (GHOST_TUns8*)tmp_data; + if (data) { + tmp_data = (unsigned char*) malloc(strlen((char*)data)); + strcpy((char*)tmp_data, (char*)data); + XFree(data); + return (GHOST_TUns8*)tmp_data; + } } return NULL; } -- cgit v1.2.3 From 8bf91e42e71c3db43d6f19187a59b58618b819a9 Mon Sep 17 00:00:00 2001 From: Ricki Myers Date: Thu, 20 Mar 2008 12:27:15 +0000 Subject: Fix for Crash on X11. Buffer was not the correct size. So strcpy would blow-up. --- intern/ghost/intern/GHOST_SystemX11.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 0329241045f..6484d767b81 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -959,7 +959,7 @@ getClipboard(int flag Primary_atom = XInternAtom(m_display, "CLIPBOARD", False); owner = XGetSelectionOwner(m_display, Primary_atom); if (owner == m_window) { - data = (unsigned char*) malloc(strlen(txt_cut_buffer)); + data = (unsigned char*) malloc(strlen(txt_cut_buffer)+1); strcpy((char*)data, txt_cut_buffer); return (GHOST_TUns8*)data; } else if (owner == None) { @@ -969,7 +969,7 @@ getClipboard(int flag Primary_atom = XInternAtom(m_display, "PRIMARY", False); owner = XGetSelectionOwner(m_display, Primary_atom); if (owner == m_window) { - data = (unsigned char*) malloc(strlen(txt_select_buffer)); + data = (unsigned char*) malloc(strlen(txt_select_buffer)+1); strcpy((char*)data, txt_select_buffer); return (GHOST_TUns8*)data; } else if (owner == None) { @@ -991,7 +991,7 @@ getClipboard(int flag if(xevent.type == SelectionNotify) { if(XGetWindowProperty(m_display, m_window, xevent.xselection.property, 0L, 4096L, False, AnyPropertyType, &rtype, &bits, &len, &bytes, &data) == Success) { if (data) { - tmp_data = (unsigned char*) malloc(strlen((char*)data)); + tmp_data = (unsigned char*) malloc(strlen((char*)data)+1); strcpy((char*)tmp_data, (char*)data); XFree(data); return (GHOST_TUns8*)tmp_data; @@ -1016,13 +1016,13 @@ GHOST_TInt8 *buffer, int flag) const Primary_atom = XInternAtom(m_display, "CLIPBOARD", False); if(txt_cut_buffer) { free((void*)txt_cut_buffer); } - txt_cut_buffer = (char*) malloc(strlen(buffer)); + txt_cut_buffer = (char*) malloc(strlen(buffer)+1); strcpy(txt_cut_buffer, buffer); } else { Primary_atom = XInternAtom(m_display, "PRIMARY", False); if(txt_select_buffer) { free((void*)txt_select_buffer); } - txt_select_buffer = (char*) malloc(strlen(buffer)); + txt_select_buffer = (char*) malloc(strlen(buffer)+1); strcpy(txt_select_buffer, buffer); } -- cgit v1.2.3 From a7ee2674db4536f279a344b06070cfb214d2426b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 22 Mar 2008 10:53:35 +0000 Subject: added stdio.h includes, gcc-4.3 is picky --- intern/ghost/intern/GHOST_NDOFManager.cpp | 1 + intern/ghost/intern/GHOST_System.cpp | 1 + 2 files changed, 2 insertions(+) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp index 5254952f03c..6f3876c1d96 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.cpp +++ b/intern/ghost/intern/GHOST_NDOFManager.cpp @@ -20,6 +20,7 @@ * ***** END GPL LICENSE BLOCK ***** */ +#include /* just for printf */ #include "GHOST_NDOFManager.h" diff --git a/intern/ghost/intern/GHOST_System.cpp b/intern/ghost/intern/GHOST_System.cpp index a083dfd88d6..b0095a6a5a7 100644 --- a/intern/ghost/intern/GHOST_System.cpp +++ b/intern/ghost/intern/GHOST_System.cpp @@ -44,6 +44,7 @@ #include "GHOST_System.h" #include +#include /* just for printf */ #include "GHOST_DisplayManager.h" #include "GHOST_EventManager.h" -- cgit v1.2.3 From 006d4d1176d87ff03446665436ace2c1d31eeaf3 Mon Sep 17 00:00:00 2001 From: Nils Thuerey Date: Tue, 8 Apr 2008 16:56:43 +0000 Subject: This version now includes the fluid control sources, however the Blender interface for it is still missing. Right now there is only a simple hard coded example, that moves a single control particle with strong attraction and velocity forces through the domain. I added more detailed information about the control code to the wiki http://wiki.blender.org/index.php/SoCFluidDevelDoc#The_Fluid-Control_Branch , together with some thoughts on how a Blender integration could be done. --- intern/elbeem/CMakeLists.txt | 2 +- intern/elbeem/SConscript | 2 +- intern/elbeem/intern/controlparticles.cpp | 1320 +++++++++++++++++++++++++++++ intern/elbeem/intern/controlparticles.h | 297 +++++++ intern/elbeem/intern/elbeem.cpp | 1 + intern/elbeem/intern/elbeem_control.cpp | 22 + intern/elbeem/intern/elbeem_control.h | 62 ++ intern/elbeem/intern/isosurface.cpp | 4 - intern/elbeem/intern/mvmcoords.cpp | 191 +++++ intern/elbeem/intern/mvmcoords.h | 77 ++ intern/elbeem/intern/solver_adap.cpp | 4 +- intern/elbeem/intern/solver_class.h | 16 +- intern/elbeem/intern/solver_control.cpp | 961 +++++++++++++++++++++ intern/elbeem/intern/solver_control.h | 187 ++++ intern/elbeem/intern/solver_init.cpp | 16 +- intern/elbeem/intern/solver_main.cpp | 7 +- intern/elbeem/intern/solver_relax.h | 42 +- 17 files changed, 3152 insertions(+), 59 deletions(-) create mode 100644 intern/elbeem/intern/controlparticles.cpp create mode 100644 intern/elbeem/intern/controlparticles.h create mode 100644 intern/elbeem/intern/elbeem_control.cpp create mode 100644 intern/elbeem/intern/elbeem_control.h create mode 100644 intern/elbeem/intern/mvmcoords.cpp create mode 100644 intern/elbeem/intern/mvmcoords.h create mode 100644 intern/elbeem/intern/solver_control.cpp create mode 100644 intern/elbeem/intern/solver_control.h (limited to 'intern') diff --git a/intern/elbeem/CMakeLists.txt b/intern/elbeem/CMakeLists.txt index 48d25901499..c0484846c6b 100644 --- a/intern/elbeem/CMakeLists.txt +++ b/intern/elbeem/CMakeLists.txt @@ -31,7 +31,7 @@ SET(INC ${PNG_INC} ${ZLIB_INC} ${SDL_INC}) FILE(GLOB SRC intern/*.cpp) -ADD_DEFINITIONS(-DNOGUI -DELBEEM_BLENDER=1) +ADD_DEFINITIONS(-DNOGUI -DELBEEM_BLENDER=1 -DLBM_INCLUDE_CONTROL=1) IF(WINDOWS) ADD_DEFINITIONS(-DUSE_MSVC6FIXES) ENDIF(WINDOWS) diff --git a/intern/elbeem/SConscript b/intern/elbeem/SConscript index bdcb0507987..cea718ee737 100644 --- a/intern/elbeem/SConscript +++ b/intern/elbeem/SConscript @@ -5,7 +5,7 @@ Import('env') sources = env.Glob('intern/*.cpp') -defs = ' NOGUI ELBEEM_BLENDER=1' +defs = 'NOGUI ELBEEM_BLENDER=1 LBM_INCLUDE_CONTROL=1' if env['WITH_BF_OPENMP'] == 1: defs += ' PARALLEL' diff --git a/intern/elbeem/intern/controlparticles.cpp b/intern/elbeem/intern/controlparticles.cpp new file mode 100644 index 00000000000..cab64d7a257 --- /dev/null +++ b/intern/elbeem/intern/controlparticles.cpp @@ -0,0 +1,1320 @@ +// -------------------------------------------------------------------------- +// +// El'Beem - the visual lattice boltzmann freesurface simulator +// All code distributed as part of El'Beem is covered by the version 2 of the +// GNU General Public License. See the file COPYING for details. +// +// Copyright 2008 Nils Thuerey , Richard Keiser, Mark Pauly, Ulrich Ruede +// +// implementation of control particle handling +// +// -------------------------------------------------------------------------- + +// indicator for LBM inclusion +#include "ntl_geometrymodel.h" +#include "ntl_world.h" +#include "solver_class.h" +#include "controlparticles.h" +#include "mvmcoords.h" +#include + +#ifndef sqrtf +#define sqrtf sqrt +#endif + +// brute force circle test init in initTimeArray +// replaced by mDebugInit +//#define CP_FORCECIRCLEINIT 0 + + +void ControlParticles::initBlenderTest() { + mPartSets.clear(); + + ControlParticleSet cps; + mPartSets.push_back(cps); + int setCnt = mPartSets.size()-1; + ControlParticle p; + + // set for time zero + mPartSets[setCnt].time = 0.; + + // add single particle + p.reset(); + p.pos = LbmVec(0.5, 0.5, -0.5); + mPartSets[setCnt].particles.push_back(p); + + // add second set for animation + mPartSets.push_back(cps); + setCnt = mPartSets.size()-1; + mPartSets[setCnt].time = 0.15; + + // insert new position + p.reset(); + p.pos = LbmVec(-0.5, -0.5, 0.5); + mPartSets[setCnt].particles.push_back(p); + + // applyTrafos(); + initTime(0. , 1.); +} + + +// init all zero / defaults for a single particle +void ControlParticle::reset() { + pos = LbmVec(0.,0.,0.); + vel = LbmVec(0.,0.,0.); + influence = 1.; + size = 1.; +#ifndef LBMDIM +#ifdef MAIN_2D + rotaxis = LbmVec(0.,1.,0.); // SPH xz +#else // MAIN_2D + // 3d - roate in xy plane, vortex + rotaxis = LbmVec(0.,0.,1.); + // 3d - rotate for wave + //rotaxis = LbmVec(0.,1.,0.); +#endif // MAIN_2D +#else // LBMDIM + rotaxis = LbmVec(0.,1.,0.); // LBM xy , is swapped afterwards +#endif // LBMDIM + + density = 0.; + densityWeight = 0.; + avgVelAcc = avgVel = LbmVec(0.); + avgVelWeight = 0.; +} + + +// default preset/empty init +ControlParticles::ControlParticles() : + _influenceTangential(0.f), + _influenceAttraction(0.f), + _influenceVelocity(0.f), + _influenceMaxdist(0.f), + _radiusAtt(1.0f), + _radiusVel(1.0f), + _radiusMinMaxd(2.0f), + _radiusMaxd(3.0f), + _currTime(-1.0), _currTimestep(1.), + _initTimeScale(1.), + _initPartOffset(0.), _initPartScale(1.), + _initLastPartOffset(0.), _initLastPartScale(1.), + _initMirror(""), + _fluidSpacing(1.), _kernelWeight(-1.), + _charLength(1.), _charLengthInv(1.), + mvCPSStart(-10000.), mvCPSEnd(10000.), + mCPSWidth(0.1), mCPSTimestep(0.05), + mCPSTimeStart(0.), mCPSTimeEnd(0.5), mCPSWeightFac(1.), + mDebugInit(0) +{ + _radiusAtt = 0.15f; + _radiusVel = 0.15f; + _radiusMinMaxd = 0.16f; + _radiusMaxd = 0.3; + + _influenceAttraction = 0.f; + _influenceTangential = 0.f; + _influenceVelocity = 0.f; + // 3d tests */ +} + + + +ControlParticles::~ControlParticles() { + // nothing to do... +} + +LbmFloat ControlParticles::getControlTimStart() { + if(mPartSets.size()>0) { return mPartSets[0].time; } + return -1000.; +} +LbmFloat ControlParticles::getControlTimEnd() { + if(mPartSets.size()>0) { return mPartSets[mPartSets.size()-1].time; } + return -1000.; +} + +// calculate for delta t +void ControlParticles::setInfluenceVelocity(LbmFloat set, LbmFloat dt) { + const LbmFloat dtInter = 0.01; + LbmFloat facFv = 1.-set; //cparts->getInfluenceVelocity(); + // mLevel[mMaxRefine].timestep + LbmFloat facNv = (LbmFloat)( 1.-pow( (double)facFv, (double)(dt/dtInter)) ); + //errMsg("vwcalc","ts:"<1) && (line[0]=='/' && line[1]=='/')) continue; + + // debug remove newline + if((len>=1)&&(line[len-1]=='\n')) line[len-1]='\0'; + + switch(line[0]) { + + case 'N': { // total number of particles, more for debugging... + noParts = atoi(line+2); + if(noParts<=0) { + errMsg("ControlParticles::initFromTextFile","file '"<=noParts) { + if(debugRead) printf("CPDEBUG%d partset done \n",lineCnt); + haveTime = false; + } else { + ControlParticle p; p.reset(); + mPartSets[setCnt].particles.push_back(p); + } + } + // only new part, or new with pos? + if(line[0] == 'n') break; + + // particle properties + + case 'p': { // new particle set at time T + if((!haveTime)||(setCnt<0)||(mPartSets[setCnt].particles.size()<1)) { fprintf(stdout,"ControlParticles::initFromTextFile - line %d ,error|p: particle missing!\n",lineCnt); abortParse=true; break; } + float px=0.,py=0.,pz=0.; + if( sscanf(line+2,"%f %f %f",&px,&py,&pz) != 3) { + fprintf(stdout,"CPDEBUG%d, unable to parse position!\n",lineCnt); abortParse=true; break; + } + if(!(finite(px)&&finite(py)&&finite(pz))) { px=py=pz=0.; } + LASTCP.pos[0] = px; + LASTCP.pos[1] = py; + LASTCP.pos[2] = pz; + if(debugRead) printf("CPDEBUG%d part%d,%d: position %f,%f,%f \n",lineCnt,setCnt,partCnt, px,py,pz); + } break; + + case 's': { // particle size + if((!haveTime)||(setCnt<0)||(mPartSets[setCnt].particles.size()<1)) { fprintf(stdout,"ControlParticles::initFromTextFile - line %d ,error|s: particle missing!\n",lineCnt); abortParse=true; break; } + float ps=1.; + if( sscanf(line+2,"%f",&ps) != 1) { + fprintf(stdout,"CPDEBUG%d, unable to parse size!\n",lineCnt); abortParse=true; break; + } + if(!(finite(ps))) { ps=0.; } + LASTCP.size = ps; + if(debugRead) printf("CPDEBUG%d part%d,%d: size %f \n",lineCnt,setCnt,partCnt, ps); + } break; + + case 'i': { // particle influence + if((!haveTime)||(setCnt<0)||(mPartSets[setCnt].particles.size()<1)) { fprintf(stdout,"ControlParticles::initFromTextFile - line %d ,error|i: particle missing!\n",lineCnt); abortParse=true; break; } + float pinf=1.; + if( sscanf(line+2,"%f",&pinf) != 1) { + fprintf(stdout,"CPDEBUG%d, unable to parse size!\n",lineCnt); abortParse=true; break; + } + if(!(finite(pinf))) { pinf=0.; } + LASTCP.influence = pinf; + if(debugRead) printf("CPDEBUG%d part%d,%d: influence %f \n",lineCnt,setCnt,partCnt, pinf); + } break; + + case 'a': { // rotation axis + if((!haveTime)||(setCnt<0)||(mPartSets[setCnt].particles.size()<1)) { fprintf(stdout,"ControlParticles::initFromTextFile - line %d ,error|a: particle missing!\n",lineCnt); abortParse=true; break; } + float px=0.,py=0.,pz=0.; + if( sscanf(line+2,"%f %f %f",&px,&py,&pz) != 3) { + fprintf(stdout,"CPDEBUG%d, unable to parse rotaxis!\n",lineCnt); abortParse=true; break; + } + if(!(finite(px)&&finite(py)&&finite(pz))) { px=py=pz=0.; } + LASTCP.rotaxis[0] = px; + LASTCP.rotaxis[1] = py; + LASTCP.rotaxis[2] = pz; + if(debugRead) printf("CPDEBUG%d part%d,%d: rotaxis %f,%f,%f \n",lineCnt,setCnt,partCnt, px,py,pz); + } break; + + + default: + if(debugRead) printf("CPDEBUG%d ignored: '%s'\n",lineCnt, line ); + break; + } + } + if(debugRead && abortParse) printf("CPDEBUG aborted parsing after set... %d\n",(int)mPartSets.size() ); + + // sanity check + for(int i=0; i<(int)mPartSets.size(); i++) { + if( (int)mPartSets[i].particles.size()!=noParts) { + fprintf(stdout,"ControlParticles::initFromTextFile (%s) - invalid no of particles in set %d, is:%d, shouldbe:%d \n",filename.c_str() ,i,(int)mPartSets[i].particles.size(), noParts); + mPartSets.clear(); + fclose(infile); + return 0; + } + } + + // print stats + printf("ControlParticles::initFromTextFile (%s): Read %d sets, each %d particles\n",filename.c_str() , + (int)mPartSets.size(), noParts ); + if(mPartSets.size()>0) { + printf("ControlParticles::initFromTextFile (%s): Time: %f,%f\n",filename.c_str() ,mPartSets[0].time, mPartSets[mPartSets.size()-1].time ); + } + + // done... + fclose(infile); + applyTrafos(); + return 1; +} + + +int ControlParticles::initFromTextFileOld(string filename) +{ + const bool debugRead = false; + char line[LINE_LEN]; + line[LINE_LEN-1] = '\0'; + mPartSets.clear(); + if(filename.size()<1) return 0; + + FILE *infile = fopen(filename.c_str(), "r"); + if(!infile) { + fprintf(stdout,"ControlParticles::initFromTextFileOld - unable to open '%s'\n",filename.c_str() ); + return 0; + } + + int haveNo = false; + int haveScale = false; + int haveTime = false; + int noParts = -1; + int coordCnt = 0; + int partCnt = 0; + int setCnt = 0; + ControlParticle p; p.reset(); + // scale times by constant factor while reading + LbmFloat timeScale= 1.0; + int lineCnt = 0; + + while(!feof(infile)) { + lineCnt++; + fgets(line, LINE_LEN, infile); + + if(debugRead) printf("\nDEBUG%d r '%s'\n",lineCnt, line); + + if(!line) continue; + int len = (int)strlen(line); + + // skip empty lines and comments (#,//) + if(len<1) continue; + if( (line[0]=='#') || (line[0]=='\n') ) continue; + if((len>1) && (line[0]=='/' && line[1]=='/')) continue; + + // debug remove newline + if((len>=1)&&(line[len-1]=='\n')) line[len-1]='\0'; + + // first read no. of particles + if(!haveNo) { + noParts = atoi(line); + if(noParts<=0) { + fprintf(stdout,"ControlParticles::initFromTextFileOld - invalid no of particles %d\n",noParts); + mPartSets.clear(); + fclose(infile); + return 0; + } + if(debugRead) printf("DEBUG%d noparts '%d'\n",lineCnt, noParts ); + haveNo = true; + } + + // then read time scale + else if(!haveScale) { + timeScale *= (LbmFloat)atof(line); + if(debugRead) printf("DEBUG%d tsc '%f', org %f\n",lineCnt, timeScale , _initTimeScale); + haveScale = true; + } + + // then get set time + else if(!haveTime) { + ControlParticleSet cps; + mPartSets.push_back(cps); + setCnt = (int)mPartSets.size()-1; + + LbmFloat val = (LbmFloat)atof(line); + mPartSets[setCnt].time = val * timeScale; + if(debugRead) printf("DEBUG%d time '%f', %d\n",lineCnt, mPartSets[setCnt].time, setCnt ); + haveTime = true; + } + + // default read all parts + else { + LbmFloat val = (LbmFloat)atof(line); + if(debugRead) printf("DEBUG: l%d s%d,particle%d '%f' %d,%d/%d\n",lineCnt,(int)mPartSets.size(),(int)mPartSets[setCnt].particles.size(), val ,coordCnt,partCnt,noParts); + p.pos[coordCnt] = val; + coordCnt++; + if(coordCnt>=3) { + mPartSets[setCnt].particles.push_back(p); + p.reset(); + coordCnt=0; + partCnt++; + } + if(partCnt>=noParts) { + partCnt = 0; + haveTime = false; + } + //if(debugRead) printf("DEBUG%d par2 %d,%d/%d\n",lineCnt, coordCnt,partCnt,noParts); + } + //read pos, vel ... + } + + // sanity check + for(int i=0; i<(int)mPartSets.size(); i++) { + if( (int)mPartSets[i].particles.size()!=noParts) { + fprintf(stdout,"ControlParticles::initFromTextFileOld - invalid no of particles in set %d, is:%d, shouldbe:%d \n",i,(int)mPartSets[i].particles.size(), noParts); + mPartSets.clear(); + fclose(infile); + return 0; + } + } + // print stats + printf("ControlParticles::initFromTextFileOld: Read %d sets, each %d particles\n", + (int)mPartSets.size(), noParts ); + if(mPartSets.size()>0) { + printf("ControlParticles::initFromTextFileOld: Time: %f,%f\n",mPartSets[0].time, mPartSets[mPartSets.size()-1].time ); + } + + // done... + fclose(infile); + applyTrafos(); + return 1; +} + +// load positions & timing from gzipped binary file +int ControlParticles::initFromBinaryFile(string filename) { + mPartSets.clear(); + if(filename.size()<1) return 0; + int fileNotFound=0; + int fileFound=0; + char ofile[256]; + + for(int set=0; ((set<10000)&&(fileNotFound<10)); set++) { + snprintf(ofile,256,"%s%04d.gz",filename.c_str(),set); + //errMsg("ControlParticle::initFromBinaryFile","set"<intersectX(ray,distance,normal, triIns, flags, true); + if(triIns) { + ntlVec3Gfx norg = ray.getOrigin() + ray.getDirection()*distance; + LbmFloat orientation = dot(normal, dir); + OId = triIns->getObjectId(); + if(orientation<=0.0) { + // outside hit + normal *= -1.0; + mGiObjInside++; + if(giObjFirstHistSide==0) giObjFirstHistSide = 1; + if(globGeoInitDebug) errMsg("IIO"," oid:"<0) { + bool mess = false; + if((mGiObjInside%2)==1) { + if(giObjFirstHistSide != -1) mess=true; + } else { + if(giObjFirstHistSide != 1) mess=true; + } + if(mess) { + // ? + //errMsg("IIIproblem","At "<0.0)) { + if( (distance<0.0) || // first intersection -> good + ((distance>0.0)&&(distance>mGiObjDistance)) // more than one intersection -> use closest one + ) { + distance = mGiObjDistance; + OId = 0; + inside = true; + } + } + + if(!inside) { + distance = firstHit; + OId = firstOId; + } + if(globGeoInitDebug) errMsg("CHIII","ins"< triangles; + vector vertices; + vector normals; + snprintf(infile,256,"%s.bobj.gz", filename.c_str() ); + model->loadBobjModel(string(infile)); + model->setLoaded(true); + model->setGeoInitId(gid); + model->setGeoInitType(FGI_FLUID); + debMsgStd("ControlParticles::initFromMVMCMesh",DM_MSG,"infile:"< *triangles, vector *vertices, vector *normals, int objectId ); + model->getTriangles(mCPSTimeStart, &triangles, &vertices, &normals, 1 ); + debMsgStd("ControlParticles::initFromMVMCMesh",DM_MSG," tris:"<addGeoClass(model); + genscene->addGeoObject(model); + genscene->buildScene(0., false); + char treeFlag = (1<<(4+gid)); + + ntlTree *tree = new ntlTree( + 15, 8, // TREEwarning - fixed values for depth & maxtriangles here... + genscene, treeFlag ); + + // TODO? use params + ntlVec3Gfx start,end; + model->getExtends(start,end); + + LbmFloat width = mCPSWidth; + if(width<=LBM_EPSILON) { errMsg("ControlParticles::initFromMVMCMesh","Invalid mCPSWidth! "< inspos; + int approxmax = (int)( ((end[0]-start[0])/width)*((end[1]-start[1])/width)*((end[2]-start[2])/width) ); + + debMsgStd("ControlParticles::initFromMVMCMesh",DM_MSG,"start"< ninspos; + mvm.transfer(vertices, ninspos); + + // init first set, check dist + ControlParticleSet firstcps; //T + mPartSets.push_back(firstcps); + mPartSets[mPartSets.size()-1].time = (gfxReal)0.; + vector useCP; + bool debugPos=false; + + for(int i=0; i<(int)inspos.size(); i++) { + ControlParticle p; p.reset(); + p.pos = vec2L(inspos[i]); + //errMsg("COMP "," "<0.)); t+=tsampling) { + ControlParticleSet nextcps; //T + mPartSets.push_back(nextcps); + mPartSets[mPartSets.size()-1].time = (gfxReal)t; + + vertices.clear(); triangles.clear(); normals.clear(); + model->getTriangles(t, &triangles, &vertices, &normals, 1 ); + mvm.transfer(vertices, ninspos); + if(tcnt%(totcnt/10)==1) debMsgStd("MeanValueMeshCoords::calculateMVMCs",DM_MSG,"Transferring animation, frame: "< swap Y and Z components everywhere +void ControlParticles::swapCoords(int a, int b) { + //return; + for(int i=0; i<(int)mPartSets.size(); i++) { + for(int j=0; j<(int)mPartSets[i].particles.size(); j++) { + TRISWAPALL( mPartSets[i].particles[j],a,b ); + } + } +} + +// helper function for LBM 2D -> mirror time +void ControlParticles::mirrorTime() { + LbmFloat maxtime = mPartSets[mPartSets.size()-1].time; + const bool debugTimeswap = false; + + for(int i=0; i<(int)mPartSets.size(); i++) { + mPartSets[i].time = maxtime - mPartSets[i].time; + } + + for(int i=0; i<(int)mPartSets.size()/2; i++) { + ControlParticleSet cps = mPartSets[i]; + if(debugTimeswap) errMsg("TIMESWAP", " s"< swap Y and Z components everywhere + //? } +#endif + + initTime(0.f, 0.f); +} + +#undef TRISWAP + +// -------------------------------------------------------------------------- +// init for a given time +void ControlParticles::initTime(LbmFloat t, LbmFloat dt) +{ + //fprintf(stdout, "CPINITTIME init %f\n",t); + _currTime = t; + if(mPartSets.size()<1) return; + + // init zero velocities + initTimeArray(t, _particles); + + // calculate velocities from prev. timestep? + if(dt>0.) { + _currTimestep = dt; + std::vector prevparts; + initTimeArray(t-dt, prevparts); + LbmFloat invdt = 1.0/dt; + for(size_t j=0; j<_particles.size(); j++) { + ControlParticle &p = _particles[j]; + ControlParticle &prevp = prevparts[j]; + for(int k=0; k<3; k++) { + p.pos[k] *= _initPartScale[k]; + p.pos[k] += _initPartOffset[k]; + prevp.pos[k] *= _initLastPartScale[k]; + prevp.pos[k] += _initLastPartOffset[k]; + } + p.vel = (p.pos - prevp.pos)*invdt; + } + + if(0) { + LbmVec avgvel(0.); + for(size_t j=0; j<_particles.size(); j++) { + avgvel += _particles[j].vel; + } + avgvel /= (LbmFloat)_particles.size(); + //fprintf(stdout," AVGVEL %f,%f,%f \n",avgvel[0],avgvel[1],avgvel[2]); // DEBUG + } + } +} + +// helper, init given array +void ControlParticles::initTimeArray(LbmFloat t, std::vector &parts) { + if(mPartSets.size()<1) return; + + if(parts.size()!=mPartSets[0].particles.size()) { + //fprintf(stdout,"PRES \n"); + parts.resize(mPartSets[0].particles.size()); + // TODO reset all? + for(size_t j=0; jt)) { + LbmFloat d = mPartSets[i+1].time-mPartSets[i].time; + LbmFloat f = (t-mPartSets[i].time)/d; + LbmFloat omf = 1.0f - f; + + for(size_t j=0; jpos * omf + src2->pos *f; + p.vel = LbmVec(0.); // reset, calculated later on src1->vel * omf + src2->vel *f; + p.rotaxis = src1->rotaxis * omf + src2->rotaxis *f; + p.influence = src1->influence * omf + src2->influence *f; + p.size = src1->size * omf + src2->size *f; + // dont modify: density, densityWeight + } + } + } + + // after last? + if(t>=mPartSets[ mPartSets.size() -1 ].time) { + //parts = mPartSets[ mPartSets.size() -1 ].particles; + const int i= (int)mPartSets.size() -1; + for(size_t j=0; jgetInfluenceAttraction()<0.) { + cp->density= + cp->densityWeight = 1.0; + continue; + } + + // normalize by kernel + //cp->densityWeight = (1.0 - (cp->density / _kernelWeight)); // store last +#if (CP_PROJECT2D==1) && (defined(MAIN_2D) || LBMDIM==2) + cp->densityWeight = (1.0 - (cp->density / (_kernelWeight*cp->size*cp->size) )); // store last +#else // 2D + cp->densityWeight = (1.0 - (cp->density / (_kernelWeight*cp->size*cp->size*cp->size) )); // store last +#endif // MAIN_2D + + if(i<10) debMsgStd("ControlParticle::prepareControl",DM_MSG,"kernelDebug i="<density,cp->densityWeight); } + avgdw /= (LbmFloat)(_particles.size()); + //if(motion) { printf("ControlParticle::kernel: avgdw:%f, kw%f, sp%f \n", avgdw, _kernelWeight, _fluidSpacing); } + + //if((simtime>=0.) && (simtime != _currTime)) + initTime(simtime, dt); + + if((motion) && (motion->getSize()>0)){ + ControlParticle *motionp = motion->getParticle(0); + //printf("ControlParticle::prepareControl motion: pos[%f,%f,%f] vel[%f,%f,%f] \n", motionp->pos[0], motionp->pos[1], motionp->pos[2], motionp->vel[0], motionp->vel[1], motionp->vel[2] ); + for(size_t i=0; i<_particles.size(); i++) { + ControlParticle *cp = &_particles[i]; + cp->pos = cp->pos + motionp->pos; + cp->vel = cp->vel + motionp->vel; + cp->size = cp->size * motionp->size; + cp->influence = cp->size * motionp->influence; + } + } + + // reset to radiusAtt by default + if(_radiusVel==0.) _radiusVel = _radiusAtt; + if(_radiusMinMaxd==0.) _radiusMinMaxd = _radiusAtt; + if(_radiusMaxd==0.) _radiusMaxd = 2.*_radiusAtt; + // has to be radiusVel_radiusAtt) _radiusVel = _radiusAtt; + if(_radiusAtt>_radiusMinMaxd) _radiusAtt = _radiusMinMaxd; + if(_radiusMinMaxd>_radiusMaxd) _radiusMinMaxd = _radiusMaxd; + + //printf("ControlParticle::radii vel:%f att:%f min:%f max:%f \n", _radiusVel,_radiusAtt,_radiusMinMaxd,_radiusMaxd); + // prepareControl done +} + +void ControlParticles::finishControl(std::vector &forces, LbmFloat iatt, LbmFloat ivel, LbmFloat imaxd) { + + //const LbmFloat iatt = this->getInfluenceAttraction() * this->getCurrTimestep(); + //const LbmFloat ivel = this->getInfluenceVelocity(); + //const LbmFloat imaxd = this->getInfluenceMaxdist() * this->getCurrTimestep(); + // prepare for usage + iatt *= this->getCurrTimestep(); + ivel *= 1.; // not necessary! + imaxd *= this->getCurrTimestep(); + + // skip when size=0 + for(int i=0; i<(int)forces.size(); i++) { + if(DEBUG_MODVEL) fprintf(stdout, "CPFORGF %d , wf:%f,f:%f,%f,%f , v:%f,%f,%f \n",i, forces[i].weightAtt, forces[i].forceAtt[0],forces[i].forceAtt[1],forces[i].forceAtt[2], forces[i].forceVel[0], forces[i].forceVel[1], forces[i].forceVel[2] ); + LbmFloat cfweight = forces[i].weightAtt; // always normalize + if((cfweight!=0.)&&(iatt!=0.)) { + // multiple kernels, normalize - note this does not normalize in d>r/2 region + if(ABS(cfweight)>1.) { cfweight = 1.0/cfweight; } + // multiply iatt afterwards to allow stronger force + cfweight *= iatt; + forces[i].forceAtt *= cfweight; + } else { + forces[i].weightAtt = 0.; + forces[i].forceAtt = LbmVec(0.); + } + + if( (cfweight==0.) && (imaxd>0.) && (forces[i].maxDistance>0.) ) { + forces[i].forceMaxd *= imaxd; + } else { + forces[i].maxDistance= 0.; + forces[i].forceMaxd = LbmVec(0.); + } + + LbmFloat cvweight = forces[i].weightVel; // always normalize + if(cvweight>0.) { + forces[i].forceVel /= cvweight; + forces[i].compAv /= cvweight; + // now modify cvweight, and write back + // important, cut at 1 - otherwise strong vel. influences... + if(cvweight>1.) { cvweight = 1.; } + // thus cvweight is in the range of 0..influenceVelocity, currently not normalized by numCParts + cvweight *= ivel; + if(cvweight<0.) cvweight=0.; if(cvweight>1.) cvweight=1.; + // LBM, FIXME todo use relaxation factor + //pvel = (cvel*0.5 * cvweight) + (pvel * (1.0-cvweight)); + forces[i].weightVel = cvweight; + + //errMsg("COMPAV","i"<density,cp->densityWeight, (1.0 - (12.0*cp->densityWeight))); } + //fprintf(stdout,"\n\nCP DONE \n\n\n"); +} + + +// -------------------------------------------------------------------------- +// calculate forces at given position, and modify velocity +// according to timestep +void ControlParticles::calculateCpInfluenceOpt(ControlParticle *cp, LbmVec fluidpos, LbmVec fluidvel, ControlForces *force, LbmFloat fillFactor) { + // dont reset, only add... + // test distance, simple squared distance reject + const LbmFloat cpfo = _radiusAtt*cp->size; + + LbmVec posDelta; + if(DEBUG_MODVEL) fprintf(stdout, "CP at %f,%f,%f bef fw:%f, f:%f,%f,%f , vw:%f, v:%f,%f,%f \n",fluidpos[0],fluidpos[1],fluidpos[2], force->weightAtt, force->forceAtt[0], force->forceAtt[1], force->forceAtt[2], force->weightVel, force->forceVel[0], force->forceVel[1], force->forceVel[2]); + posDelta = cp->pos - fluidpos; +#if LBMDIM==2 && (CP_PROJECT2D==1) + posDelta[2] = 0.; // project to xy plane, z-velocity should already be gone... +#endif + + const LbmFloat distsqr = posDelta[0]*posDelta[0]+posDelta[1]*posDelta[1]+posDelta[2]*posDelta[2]; + if(DEBUG_MODVEL) fprintf(stdout, " Pd at %f,%f,%f d%f \n",posDelta[0],posDelta[1],posDelta[2], distsqr); + // cut at influence=0.5 , scaling not really makes sense + if(cpfo*cpfo < distsqr) { + /*if(cp->influence>0.5) { + if(force->weightAtt == 0.) { + if(force->maxDistance*force->maxDistance > distsqr) { + const LbmFloat dis = sqrtf((float)distsqr); + const LbmFloat sc = dis-cpfo; + force->maxDistance = dis; + force->forceMaxd = (posDelta)*(sc/dis); + } + } } */ + return; + } + force->weightAtt += 1e-6; // for distance + force->maxDistance = 0.; // necessary for SPH? + + const LbmFloat pdistance = MAGNITUDE(posDelta); + LbmFloat pdistinv = 0.; + if(ABS(pdistance)>0.) pdistinv = 1./pdistance; + posDelta *= pdistinv; + + LbmFloat falloffAtt = 0.; //CPKernel::kernel(cpfo * 1.0, pdistance); + const LbmFloat qac = pdistance / cpfo ; + if (qac < 1.0){ // return 0.; + if(qac < 0.5) falloffAtt = 1.0f; + else falloffAtt = (1.0f - qac) * 2.0f; + } + + // vorticity force: + // - //LbmVec forceVort; + // - //CROSS(forceVort, posDelta, cp->rotaxis); + // - //NORMALIZE(forceVort); + // - if(falloffAtt>1.0) falloffAtt=1.0; + +#if (CP_PROJECT2D==1) && (defined(MAIN_2D) || LBMDIM==2) + // fillFactor *= 2.0 *0.75 * pdistance; // 2d>3d sampling +#endif // (CP_PROJECT2D==1) && (defined(MAIN_2D) || LBMDIM==2) + cp->density += falloffAtt * fillFactor; + force->forceAtt += posDelta *cp->densityWeight *cp->influence; + force->weightAtt += falloffAtt*cp->densityWeight *cp->influence; + + LbmFloat falloffVel = 0.; //CPKernel::kernel(cpfo * 1.0, pdistance); + const LbmFloat cpfv = _radiusVel*cp->size; + if(cpfv*cpfv < distsqr) { return; } + const LbmFloat qvc = pdistance / cpfo ; + //if (qvc < 1.0){ + //if(qvc < 0.5) falloffVel = 1.0f; + //else falloffVel = (1.0f - qvc) * 2.0f; + //} + falloffVel = 1.-qvc; + + LbmFloat pvWeight; // = (1.0-cp->densityWeight) * _currTimestep * falloffVel; + pvWeight = falloffVel *cp->influence; // std, without density influence + //pvWeight *= (1.0-cp->densityWeight); // use inverse density weight + //pvWeight *= cp->densityWeight; // test, use density weight + LbmVec modvel(0.); + modvel += cp->vel * pvWeight; + //pvWeight = 1.; modvel = partVel; // DEBUG!? + + if(pvWeight>0.) { + force->forceVel += modvel; + force->weightVel += pvWeight; + + cp->avgVelWeight += falloffVel; + cp->avgVel += fluidvel; + } + if(DEBUG_MODVEL) fprintf(stdout, "CP at %f,%f,%f aft fw:%f, f:%f,%f,%f , vw:%f, v:%f,%f,%f \n",fluidpos[0],fluidpos[1],fluidpos[2], force->weightAtt, force->forceAtt[0], force->forceAtt[1], force->forceAtt[2], force->weightVel, force->forceVel[0], force->forceVel[1], force->forceVel[2]); + return; +} + +void ControlParticles::calculateMaxdForce(ControlParticle *cp, LbmVec fluidpos, ControlForces *force) { + if(force->weightAtt != 0.) return; // maxd force off + if(cp->influence <= 0.5) return; // ignore + + LbmVec posDelta; + //if(DEBUG_MODVEL) fprintf(stdout, "CP at %f,%f,%f bef fw:%f, f:%f,%f,%f , vw:%f, v:%f,%f,%f \n",fluidpos[0],fluidpos[1],fluidpos[2], force->weightAtt, force->forceAtt[0], force->forceAtt[1], force->forceAtt[2], force->weightVel, force->forceVel[0], force->forceVel[1], force->forceVel[2]); + posDelta = cp->pos - fluidpos; +#if LBMDIM==2 && (CP_PROJECT2D==1) + posDelta[2] = 0.; // project to xy plane, z-velocity should already be gone... +#endif + + // dont reset, only add... + // test distance, simple squared distance reject + const LbmFloat distsqr = posDelta[0]*posDelta[0]+posDelta[1]*posDelta[1]+posDelta[2]*posDelta[2]; + + // closer cp found + if(force->maxDistance*force->maxDistance < distsqr) return; + + const LbmFloat dmin = _radiusMinMaxd*cp->size; + if(distsqrsize; + if(distsqr>dmax*dmax) return; // outside + + + if(DEBUG_MODVEL) fprintf(stdout, " Pd at %f,%f,%f d%f \n",posDelta[0],posDelta[1],posDelta[2], distsqr); + // cut at influence=0.5 , scaling not really makes sense + const LbmFloat dis = sqrtf((float)distsqr); + //const LbmFloat sc = dis - dmin; + const LbmFloat sc = (dis-dmin)/(dmax-dmin); // scale from 0-1 + force->maxDistance = dis; + force->forceMaxd = (posDelta/dis) * sc; + //debug errMsg("calculateMaxdForce","pos"<maxDistance <<" fmd"<forceMaxd ); + return; +} + diff --git a/intern/elbeem/intern/controlparticles.h b/intern/elbeem/intern/controlparticles.h new file mode 100644 index 00000000000..5b8683a4f7d --- /dev/null +++ b/intern/elbeem/intern/controlparticles.h @@ -0,0 +1,297 @@ +// -------------------------------------------------------------------------- +// +// El'Beem - the visual lattice boltzmann freesurface simulator +// All code distributed as part of El'Beem is covered by the version 2 of the +// GNU General Public License. See the file COPYING for details. +// +// Copyright 2008 Nils Thuerey , Richard Keiser, Mark Pauly, Ulrich Ruede +// +// control particle classes +// +// -------------------------------------------------------------------------- + +#ifndef CONTROLPARTICLES_H +#define CONTROLPARTICLES_H + +// indicator for LBM inclusion +//#ifndef LBMDIM + +//#include +//#include +//class MultisphGUI; +//#define NORMALIZE(a) a.normalize() +//#define MAGNITUDE(a) a.magnitude() +//#define CROSS(a,b,c) a.cross(b,c) +//#define ABS(a) (a>0. ? (a) : -(a)) +//#include "cpdefines.h" + +//#else // LBMDIM + +// use compatibility defines +//#define NORMALIZE(a) normalize(a) +//#define MAGNITUDE(a) norm(a) +//#define CROSS(a,b,c) a=cross(b,c) + +//#endif // LBMDIM + +#define MAGNITUDE(a) norm(a) + +// math.h compatibility +#define CP_PI ((LbmFloat)3.14159265358979323846) + +// project 2d test cases onto plane? +// if not, 3d distance is used for 2d sim as well +#define CP_PROJECT2D 1 + + +// default init for mincpdist, ControlForces::maxDistance +#define CPF_MAXDINIT 10000. + +// storage of influence for a fluid cell/particle in lbm/sph +class ControlForces +{ +public: + ControlForces() { }; + ~ControlForces() {}; + + // attraction force + LbmFloat weightAtt; + LbmVec forceAtt; + // velocity influence + LbmFloat weightVel; + LbmVec forceVel; + // maximal distance influence, + // first is max. distance to first control particle + // second attraction strength + LbmFloat maxDistance; + LbmVec forceMaxd; + + LbmFloat compAvWeight; + LbmVec compAv; + + void resetForces() { + weightAtt = weightVel = 0.; + maxDistance = CPF_MAXDINIT; + forceAtt = forceVel = forceMaxd = LbmVec(0.,0.,0.); + compAvWeight=0.; compAv=LbmVec(0.); + }; +}; + + +// single control particle +class ControlParticle +{ +public: + ControlParticle() { reset(); }; + ~ControlParticle() {}; + + // control parameters + + // position + LbmVec pos; + // size (influences influence radius) + LbmFloat size; + // overall strength of influence + LbmFloat influence; + // rotation axis + LbmVec rotaxis; + + // computed values + + // velocity + LbmVec vel; + // computed density + LbmFloat density; + LbmFloat densityWeight; + + LbmVec avgVel; + LbmVec avgVelAcc; + LbmFloat avgVelWeight; + + // init all zero / defaults + void reset(); +}; + + +// container for a particle configuration at time t +class ControlParticleSet +{ +public: + + // time of particle set + LbmFloat time; + // particle positions + std::vector particles; + +}; + + +// container & management of control particles +class ControlParticles +{ +public: + ControlParticles(); + ~ControlParticles(); + + // reset datastructures for next influence step + // if motion object is given, particle 1 of second system is used for overall + // position and speed offset + void prepareControl(LbmFloat simtime, LbmFloat dt, ControlParticles *motion); + // post control operations + void finishControl(std::vector &forces, LbmFloat iatt, LbmFloat ivel, LbmFloat imaxd); + // recalculate + void calculateKernelWeight(); + + // calculate forces at given position, and modify velocity + // according to timestep (from initControl) + void calculateCpInfluenceOpt (ControlParticle *cp, LbmVec fluidpos, LbmVec fluidvel, ControlForces *force, LbmFloat fillFactor); + void calculateMaxdForce (ControlParticle *cp, LbmVec fluidpos, ControlForces *force); + + // no. of particles + inline int getSize() { return (int)_particles.size(); } + int getTotalSize(); + // get particle [i] + inline ControlParticle* getParticle(int i){ return &_particles[i]; } + + // set influence parameters + void setInfluenceTangential(LbmFloat set) { _influenceTangential=set; } + void setInfluenceAttraction(LbmFloat set) { _influenceAttraction=set; } + void setInfluenceMaxdist(LbmFloat set) { _influenceMaxdist=set; } + // calculate for delta t + void setInfluenceVelocity(LbmFloat set, LbmFloat dt); + // get influence parameters + inline LbmFloat getInfluenceAttraction() { return _influenceAttraction; } + inline LbmFloat getInfluenceTangential() { return _influenceTangential; } + inline LbmFloat getInfluenceVelocity() { return _influenceVelocity; } + inline LbmFloat getInfluenceMaxdist() { return _influenceMaxdist; } + inline LbmFloat getCurrTimestep() { return _currTimestep; } + + void setRadiusAtt(LbmFloat set) { _radiusAtt=set; } + inline LbmFloat getRadiusAtt() { return _radiusAtt; } + void setRadiusVel(LbmFloat set) { _radiusVel=set; } + inline LbmFloat getRadiusVel() { return _radiusVel; } + void setRadiusMaxd(LbmFloat set) { _radiusMaxd=set; } + inline LbmFloat getRadiusMaxd() { return _radiusMaxd; } + void setRadiusMinMaxd(LbmFloat set) { _radiusMinMaxd=set; } + inline LbmFloat getRadiusMinMaxd() { return _radiusMinMaxd; } + + LbmFloat getControlTimStart(); + LbmFloat getControlTimEnd(); + + // set/get characteristic length (and inverse) + void setCharLength(LbmFloat set) { _charLength=set; _charLengthInv=1./_charLength; } + inline LbmFloat getCharLength() { return _charLength;} + inline LbmFloat getCharLengthInv() { return _charLengthInv;} + + // set init parameters + void setInitTimeScale(LbmFloat set) { _initTimeScale = set; }; + void setInitMirror(string set) { _initMirror = set; }; + string getInitMirror() { return _initMirror; }; + + void setLastOffset(LbmVec set) { _initLastPartOffset = set; }; + void setLastScale(LbmVec set) { _initLastPartScale = set; }; + void setOffset(LbmVec set) { _initPartOffset = set; }; + void setScale(LbmVec set) { _initPartScale = set; }; + + // set/get cps params + void setCPSWith(LbmFloat set) { mCPSWidth = set; }; + void setCPSTimestep(LbmFloat set) { mCPSTimestep = set; }; + void setCPSTimeStart(LbmFloat set) { mCPSTimeStart = set; }; + void setCPSTimeEnd(LbmFloat set) { mCPSTimeEnd = set; }; + void setCPSMvmWeightFac(LbmFloat set) { mCPSWeightFac = set; }; + + LbmFloat getCPSWith() { return mCPSWidth; }; + LbmFloat getCPSTimestep() { return mCPSTimestep; }; + LbmFloat getCPSTimeStart() { return mCPSTimeStart; }; + LbmFloat getCPSTimeEnd() { return mCPSTimeEnd; }; + LbmFloat getCPSMvmWeightFac() { return mCPSWeightFac; }; + + void setDebugInit(int set) { mDebugInit = set; }; + + // set init parameters + void setFluidSpacing(LbmFloat set) { _fluidSpacing = set; }; + + // load positions & timing from text file + int initFromTextFile(string filename); + int initFromTextFileOld(string filename); + // load positions & timing from gzipped binary file + int initFromBinaryFile(string filename); + int initFromMVCMesh(string filename); + // init an example test case + int initExampleSet(); + + // init for a given time + void initTime(LbmFloat t, LbmFloat dt); + + // blender test init + void initBlenderTest(); + +protected: + // sets influence params + friend class MultisphGUI; + + // tangential and attraction influence + LbmFloat _influenceTangential, _influenceAttraction; + // direct velocity influence + LbmFloat _influenceVelocity; + // maximal distance influence + LbmFloat _influenceMaxdist; + + // influence radii + LbmFloat _radiusAtt, _radiusVel, _radiusMinMaxd, _radiusMaxd; + + // currently valid time & timestep + LbmFloat _currTime, _currTimestep; + // all particles + std::vector _particles; + + // particle sets + std::vector mPartSets; + + // additional parameters for initing particles + LbmFloat _initTimeScale; + LbmVec _initPartOffset; + LbmVec _initPartScale; + LbmVec _initLastPartOffset; + LbmVec _initLastPartScale; + // mirror particles for loading? + string _initMirror; + + // row spacing paramter, e.g. use for approximation of kernel area/volume + LbmFloat _fluidSpacing; + // save current kernel weight + LbmFloat _kernelWeight; + // charateristic length in world coordinates for normalizatioon of forces + LbmFloat _charLength, _charLengthInv; + + + /*! do ani mesh CPS */ + void calculateCPS(string filename); + //! ani mesh cps params + ntlVec3Gfx mvCPSStart, mvCPSEnd; + gfxReal mCPSWidth, mCPSTimestep; + gfxReal mCPSTimeStart, mCPSTimeEnd; + gfxReal mCPSWeightFac; + + int mDebugInit; + + +protected: + // apply init transformations + void applyTrafos(); + + // helper function for init -> swap components everywhere + void swapCoords(int a,int b); + // helper function for init -> mirror time + void mirrorTime(); + + // helper, init given array + void initTimeArray(LbmFloat t, std::vector &parts); + + bool checkPointInside(ntlTree *tree, ntlVec3Gfx org, gfxReal &distance); +}; + + + +#endif + diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp index b2779f51c3b..23a447a3d64 100644 --- a/intern/elbeem/intern/elbeem.cpp +++ b/intern/elbeem/intern/elbeem.cpp @@ -30,6 +30,7 @@ int guiRoiMaxLev=6, guiRoiMinLev=0; ntlWorld *gpWorld = NULL; + // API // reset elbeemSimulationSettings struct with defaults diff --git a/intern/elbeem/intern/elbeem_control.cpp b/intern/elbeem/intern/elbeem_control.cpp new file mode 100644 index 00000000000..272cfa6ec9d --- /dev/null +++ b/intern/elbeem/intern/elbeem_control.cpp @@ -0,0 +1,22 @@ +/****************************************************************************** + * + * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method + * All code distributed as part of El'Beem is covered by the version 2 of the + * GNU General Public License. See the file COPYING for details. + * Copyright 2003-2006 Nils Thuerey + * + * Control API header + */ + +#include "elbeem.h" +#include "elbeem_control.h" + +// add mesh as fluidsim object +int elbeemControlAddSet(struct elbeemControl*) { + return 0; +} + +int elbeemControlComputeMesh(struct elbeemMesh) { + return 0; +} + diff --git a/intern/elbeem/intern/elbeem_control.h b/intern/elbeem/intern/elbeem_control.h new file mode 100644 index 00000000000..0d30835a224 --- /dev/null +++ b/intern/elbeem/intern/elbeem_control.h @@ -0,0 +1,62 @@ +/****************************************************************************** + * + * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method + * All code distributed as part of El'Beem is covered by the version 2 of the + * GNU General Public License. See the file COPYING for details. + * Copyright 2003-2006 Nils Thuerey + * + * Control API header + */ +#ifndef ELBEEMCONTROL_API_H +#define ELBEEMCONTROL_API_H + +// a single control particle set +typedef struct elbeemControl { + /* influence forces */ + float influenceAttraction; + float *channelInfluenceAttraction; + float channelSizeInfluenceAttraction; + + float influenceVelocity; + float *channelInfluenceVelocity; + float channelSizeInfluenceVelocity; + + float influenceMaxdist; + float *channelInfluenceMaxdist; + float channelSizeInfluenceMaxdist; + + /* influence force radii */ + float radiusAttraction; + float *channelRadiusAttraction; + float channelSizeRadiusAttraction; + + float radiusVelocity; + float *channelRadiusVelocity; + float channelSizeRadiusVelocity; + + float radiusMindist; + float *channelRadiusMindist; + float channelSizeRadiusMindist; + float radiusMaxdist; + float *channelRadiusMaxdist; + float channelSizeRadiusMaxdist; + + /* control particle positions/scale */ + float offset[3]; + float *channelOffset; + float channelSizeOffset; + + float scale[3]; + float *channelScale; + float channelSizeScale; + +} elbeemControl; + + +// add mesh as fluidsim object +int elbeemControlAddSet(struct elbeemControl*); + +// sample & track mesh control particles, TODO add return type... +int elbeemControlComputeMesh(struct elbeemMesh); + +#endif // ELBEEMCONTROL_API_H diff --git a/intern/elbeem/intern/isosurface.cpp b/intern/elbeem/intern/isosurface.cpp index 1b0ba13c707..9925565b85d 100644 --- a/intern/elbeem/intern/isosurface.cpp +++ b/intern/elbeem/intern/isosurface.cpp @@ -13,10 +13,6 @@ #include #include -#if (defined (__sun__) || defined (__sun)) || (!defined(linux) && (defined (__sparc) || defined (__sparc__))) -#include -#endif - // just use default rounding for platforms where its not available #ifndef round #define round(x) (x) diff --git a/intern/elbeem/intern/mvmcoords.cpp b/intern/elbeem/intern/mvmcoords.cpp new file mode 100644 index 00000000000..f8ae11ea71d --- /dev/null +++ b/intern/elbeem/intern/mvmcoords.cpp @@ -0,0 +1,191 @@ +/****************************************************************************** + * +// El'Beem - the visual lattice boltzmann freesurface simulator +// All code distributed as part of El'Beem is covered by the version 2 of the +// GNU General Public License. See the file COPYING for details. +// +// Copyright 2008 Nils Thuerey , Richard Keiser, Mark Pauly, Ulrich Ruede +// + * + * Mean Value Mesh Coords class + * + *****************************************************************************/ + +#include "mvmcoords.h" +#include +using std::vector; + +void MeanValueMeshCoords::clear() +{ + mVertices.resize(0); + mNumVerts = 0; +} + +void MeanValueMeshCoords::calculateMVMCs(vector &reference_vertices, vector &tris, + vector &points, gfxReal numweights) +{ + clear(); + mvmTransferPoint tds; + int mem = 0; + int i = 0; + + mNumVerts = (int)reference_vertices.size(); + + for (vector::iterator iter = points.begin(); iter != points.end(); ++iter, ++i) { + if(i%(points.size()/10)==1) debMsgStd("MeanValueMeshCoords::calculateMVMCs",DM_MSG,"Computing weights, points: "< &reference_vertices, vector& tris, + mvmTransferPoint& tds, gfxReal numweights) +{ + const bool mvmFullDebug=false; + //const ntlVec3Gfx cEPS = 1.0e-6; + const mvmFloat cEPS = 1.0e-14; + + //mvmFloat d[3], s[3], phi[3],c[3]; + ntlVec3d u[3],c,d,s,phi; + int indices[3]; + + for (int i = 0; i < (int)reference_vertices.size(); ++i) { + tds.weights.push_back(mvmIndexWeight(i, 0.0)); + } + + // for each triangle + //for (vector::iterator iter = tris.begin(); iter != tris.end();) { + for(int t=0; t<(int)tris.size(); t++) { + + for (int i = 0; i < 3; ++i) { //, ++iter) { + indices[i] = tris[t].getPoints()[i]; + u[i] = vec2D(reference_vertices[ indices[i] ]-tds.lastpos); + d[i] = normalize(u[i]); //.normalize(); + //assert(d[i] != 0.); + if(mvmFullDebug) errMsg("MeanValueMeshCoords::computeWeights","t"< ignore it"); + continue; + } + const mvmFloat u0x = u[0][0]; + const mvmFloat u0y = u[0][1]; + const mvmFloat u0z = u[0][2]; + const mvmFloat u1x = u[1][0]; + const mvmFloat u1y = u[1][1]; + const mvmFloat u1z = u[1][2]; + const mvmFloat u2x = u[2][0]; + const mvmFloat u2y = u[2][1]; + const mvmFloat u2z = u[2][2]; + mvmFloat det = u0x*u1y*u2z - u0x*u1z*u2y + u0y*u1z*u2x - u0y*u1x*u2z + u0z*u1x*u2y - u0z*u1y*u2x; + //assert(det != 0.); + if (det < 0.) { + s[0] = -s[0]; + s[1] = -s[1]; + s[2] = -s[2]; + } + + tds.weights[indices[0]].weight += (phi[0]-c[1]*phi[2]-c[2]*phi[1])/(d[0]*sin(phi[1])*s[2]); + tds.weights[indices[1]].weight += (phi[1]-c[2]*phi[0]-c[0]*phi[2])/(d[1]*sin(phi[2])*s[0]); + tds.weights[indices[2]].weight += (phi[2]-c[0]*phi[1]-c[1]*phi[0])/(d[2]*sin(phi[0])*s[1]); + if(mvmFullDebug) { errMsg("MeanValueMeshCoords::computeWeights","i"<0.)&& (numweights<1.) ) { + //if( ((int)tds.weights.size() > maxNumWeights) && (maxNumWeights > 0) ) { + int maxNumWeights = (int)(tds.weights.size()*numweights); + if(maxNumWeights<=0) maxNumWeights = 1; + std::sort(tds.weights.begin(), tds.weights.end(), std::greater()); + // only use maxNumWeights-th largest weights + tds.weights.resize(maxNumWeights); + } + + // normalize weights + mvmFloat totalWeight = 0.; + for (vector::const_iterator witer = tds.weights.begin(); + witer != tds.weights.end(); ++witer) { + totalWeight += witer->weight; + } + mvmFloat invTotalWeight; + if (totalWeight == 0.) { + if(mvmFullDebug) errMsg("MeanValueMeshCoords::computeWeights","totalWeight == 0"); + invTotalWeight = 0.0; + } else { + invTotalWeight = 1.0/totalWeight; + } + + for (vector::iterator viter = tds.weights.begin(); + viter != tds.weights.end(); ++viter) { + viter->weight *= invTotalWeight; + //assert(finite(viter->weight) != 0); + if(!finite(viter->weight)) viter->weight=0.; + } +} + +void MeanValueMeshCoords::transfer(vector &vertices, vector& displacements) +{ + displacements.resize(0); + + //debMsgStd("MeanValueMeshCoords::transfer",DM_MSG,"vertices:"<::iterator titer = mVertices.begin(); titer != mVertices.end(); ++titer) { + mvmTransferPoint &tds = *titer; + ntlVec3Gfx newpos(0.0); + + for (vector::iterator witer = tds.weights.begin(); + witer != tds.weights.end(); ++witer) { + newpos += vertices[witer->index] * witer->weight; + //errMsg("transfer","np"<index]<<" w"<< witer->weight); + } + + displacements.push_back(newpos); + //displacements.push_back(newpos - tds.lastpos); + //tds.lastpos = newpos; + } +} + diff --git a/intern/elbeem/intern/mvmcoords.h b/intern/elbeem/intern/mvmcoords.h new file mode 100644 index 00000000000..2b63d31da54 --- /dev/null +++ b/intern/elbeem/intern/mvmcoords.h @@ -0,0 +1,77 @@ +/****************************************************************************** + * +// El'Beem - the visual lattice boltzmann freesurface simulator +// All code distributed as part of El'Beem is covered by the version 2 of the +// GNU General Public License. See the file COPYING for details. +// +// Copyright 2008 Nils Thuerey , Richard Keiser, Mark Pauly, Ulrich Ruede +// + * + * Mean Value Mesh Coords class + * + *****************************************************************************/ + +#ifndef MVMCOORDS_H +#define MVMCOORDS_H + +#include "utilities.h" +#include "ntl_ray.h" +#include +#define mvmFloat double + +// weight and triangle index +class mvmIndexWeight { + public: + + mvmIndexWeight() : weight(0.0) {} + + mvmIndexWeight(int const& i, mvmFloat const& w) : + weight(w), index(i) {} + + // for sorting + bool operator> (mvmIndexWeight const& w) const { return this->weight > w.weight; } + bool operator< (mvmIndexWeight const& w) const { return this->weight < w.weight; } + + mvmFloat weight; + int index; +}; + +// transfer point with weights +class mvmTransferPoint { + public: + //! position of transfer point + ntlVec3Gfx lastpos; + //! triangle weights + std::vector weights; +}; + + +//! compute mvmcs +class MeanValueMeshCoords { + + public: + + MeanValueMeshCoords() {} + ~MeanValueMeshCoords() { + clear(); + } + + void clear(); + + void calculateMVMCs(std::vector &reference_vertices, + std::vector &tris, std::vector &points, gfxReal numweights); + + void transfer(std::vector &vertices, std::vector& displacements); + + protected: + + void computeWeights(std::vector &reference_vertices, + std::vector &tris, mvmTransferPoint& tds, gfxReal numweights); + + std::vector mVertices; + int mNumVerts; + +}; + +#endif + diff --git a/intern/elbeem/intern/solver_adap.cpp b/intern/elbeem/intern/solver_adap.cpp index 5616d805232..ef516a578bd 100644 --- a/intern/elbeem/intern/solver_adap.cpp +++ b/intern/elbeem/intern/solver_adap.cpp @@ -11,9 +11,7 @@ #include "solver_relax.h" #include "particletracer.h" -#if (defined (__sun__) || defined (__sun)) || (!defined(linux) && (defined (__sparc) || defined (__sparc__))) -#include -#endif + /*****************************************************************************/ //! coarse step functions diff --git a/intern/elbeem/intern/solver_class.h b/intern/elbeem/intern/solver_class.h index d46f065adfd..310dd50617d 100644 --- a/intern/elbeem/intern/solver_class.h +++ b/intern/elbeem/intern/solver_class.h @@ -105,6 +105,10 @@ #endif #endif +#if LBM_INCLUDE_CONTROL==1 +#include "solver_control.h" +#endif + #if LBM_INCLUDE_TESTSOLVERS==1 #include "solver_test.h" #endif // LBM_INCLUDE_TESTSOLVERS==1 @@ -497,6 +501,14 @@ class LbmFsgrSolver : LbmFloat& debRAC(LbmFloat* s,int l); # endif // FSGR_STRICT_DEBUG==1 +# if LBM_INCLUDE_CONTROL==1 + LbmControlData *mpControl; + + void initCpdata(); + void handleCpdata(); + void cpDebugDisplay(int dispset); +# endif // LBM_INCLUDE_CONTROL==1 + bool mUseTestdata; # if LBM_INCLUDE_TESTSOLVERS==1 // test functions @@ -506,10 +518,6 @@ class LbmFsgrSolver : void handleTestdata(); void set3dHeight(int ,int ); - void initCpdata(); - void handleCpdata(); - void cpDebugDisplay(int dispset); - int mMpNum,mMpIndex; int mOrgSizeX; LbmFloat mOrgStartX; diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp new file mode 100644 index 00000000000..69f1682e253 --- /dev/null +++ b/intern/elbeem/intern/solver_control.cpp @@ -0,0 +1,961 @@ +/****************************************************************************** + * + * El'Beem - the visual lattice boltzmann freesurface simulator + * All code distributed as part of El'Beem is covered by the version 2 of the + * GNU General Public License. See the file COPYING for details. + * + * Copyright 2003-2008 Nils Thuerey + * + * control extensions + * + *****************************************************************************/ +#include "solver_class.h" +#include "solver_relax.h" +#include "particletracer.h" + +#include "solver_control.h" + +#include "controlparticles.h" + + + +/****************************************************************************** + * LbmControlData control set + *****************************************************************************/ + +LbmControlSet::LbmControlSet() : + mCparts(NULL), mCpmotion(NULL), mContrPartFile(""), mCpmotionFile(""), + mcForceAtt(0.), mcForceVel(0.), mcForceMaxd(0.), + mcRadiusAtt(0.), mcRadiusVel(0.), mcRadiusMind(0.), mcRadiusMaxd(0.), + mcCpScale(1.), mcCpOffset(0.) +{ +} +LbmControlSet::~LbmControlSet() { + if(mCparts) delete mCparts; + if(mCpmotion) delete mCpmotion; +} +void LbmControlSet::initCparts() { + mCparts = new ControlParticles(); + mCpmotion = new ControlParticles(); +} + + + +/****************************************************************************** + * LbmControlData control + *****************************************************************************/ + +LbmControlData::LbmControlData() : + mSetForceStrength(0.), + mCons(), mCpUpdateInterval(16), mCpOutfile(""), + mCpForces(), mCpKernel(), mMdKernel(), + mDiffVelCon(1.), + mDebugCpscale(0.), + mDebugVelScale(0.), + mDebugCompavScale(0.), + mDebugAttScale(0.), + mDebugMaxdScale(0.), + mDebugAvgVelScale(0.) +{ +} + +LbmControlData::~LbmControlData() +{ +} + + +void LbmControlData::parseControldataAttrList(AttributeList *attr) { + // controlpart vars + mSetForceStrength = attr->readFloat("tforcestrength", mSetForceStrength,"LbmControlData", "mSetForceStrength", false); + //errMsg("tforcestrength set to "," "<readInt("controlparticle_updateinterval", mCpUpdateInterval,"LbmControlData","mCpUpdateInterval", false); + // tracer output file + mCpOutfile = attr->readString("controlparticle_outfile",mCpOutfile,"LbmControlData","mCpOutfile", false); + if(getenv("ELBEEM_CPOUTFILE")) { + string outfile(getenv("ELBEEM_CPOUTFILE")); + mCpOutfile = outfile; + debMsgStd("LbmControlData::parseAttrList",DM_NOTIFY,"Using envvar ELBEEM_CPOUTFILE to set mCpOutfile to "<0) + { suffix = string("0"); suffix[0]+=cpii; } + LbmControlSet *cset; + cset = new LbmControlSet(); + cset->initCparts(); + + cset->mContrPartFile = attr->readString("controlparticle"+suffix+"_file",cset->mContrPartFile,"LbmControlData","cset->mContrPartFile", false); + if((cpii==0) && (getenv("ELBEEM_CPINFILE")) ) { + string infile(getenv("ELBEEM_CPINFILE")); + cset->mContrPartFile = infile; + debMsgStd("LbmControlData::parseAttrList",DM_NOTIFY,"Using envvar ELBEEM_CPINFILE to set mContrPartFile to "<mContrPartFile,7); + } + + LbmFloat cpvort=0.; + cset->mcRadiusAtt = attr->readChannelSinglePrecFloat("controlparticle"+suffix+"_radiusatt", 0., "LbmControlData","mcRadiusAtt" ); + cset->mcRadiusVel = attr->readChannelSinglePrecFloat("controlparticle"+suffix+"_radiusvel", 0., "LbmControlData","mcRadiusVel" ); + cset->mcRadiusVel = attr->readChannelSinglePrecFloat("controlparticle"+suffix+"_radiusvel", 0., "LbmControlData","mcRadiusVel" ); + cset->mCparts->setRadiusAtt(cset->mcRadiusAtt.get(0.)); + cset->mCparts->setRadiusVel(cset->mcRadiusVel.get(0.)); + + // WARNING currently only for first set + //if(cpii==0) { + cset->mcForceAtt = attr->readChannelSinglePrecFloat("controlparticle"+suffix+"_attraction", 0. , "LbmControlData","cset->mcForceAtt", false); + cset->mcForceVel = attr->readChannelSinglePrecFloat("controlparticle"+suffix+"_velocity", 0. , "LbmControlData","mcForceVel", false); + cset->mcForceMaxd = attr->readChannelSinglePrecFloat("controlparticle"+suffix+"_maxdist", 0. , "LbmControlData","mcForceMaxd", false); + cset->mCparts->setInfluenceAttraction(cset->mcForceAtt.get(0.) ); + // warning - stores temprorarily, value converted to dt dep. factor + cset->mCparts->setInfluenceVelocity(cset->mcForceVel.get(0.) , 0.01 ); // dummy dt + cset->mCparts->setInfluenceMaxdist(cset->mcForceMaxd.get(0.) ); + cpvort = attr->readFloat("controlparticle"+suffix+"_vorticity", cpvort, "LbmControlData","cpvort", false); + cset->mCparts->setInfluenceTangential(cpvort); + + cset->mcRadiusMind = attr->readChannelSinglePrecFloat("controlparticle"+suffix+"_radiusmin", cset->mcRadiusMind.get(0.), "LbmControlData","mcRadiusMind", false); + cset->mcRadiusMaxd = attr->readChannelSinglePrecFloat("controlparticle"+suffix+"_radiusmax", cset->mcRadiusMind.get(0.), "LbmControlData","mcRadiusMaxd", false); + cset->mCparts->setRadiusMinMaxd(cset->mcRadiusMind.get(0.)); + cset->mCparts->setRadiusMaxd(cset->mcRadiusMaxd.get(0.)); + //} + + // now local... + //LbmVec cpOffset(0.), cpScale(1.); + LbmFloat cpTimescale = 1.; + string cpMirroring(""); + + //cset->mcCpOffset = attr->readChannelVec3f("controlparticle"+suffix+"_offset", ntlVec3f(0.),"LbmControlData","mcCpOffset", false); + //cset->mcCpScale = attr->readChannelVec3f("controlparticle"+suffix+"_scale", ntlVec3f(1.), "LbmControlData","mcCpScale", false); + cset->mcCpOffset = attr->readChannelVec3f("controlparticle"+suffix+"_offset", ntlVec3f(0.),"LbmControlData","mcCpOffset", false); + cset->mcCpScale = attr->readChannelVec3f("controlparticle"+suffix+"_scale", ntlVec3f(1.), "LbmControlData","mcCpScale", false); + cpTimescale = attr->readFloat("controlparticle"+suffix+"_timescale", cpTimescale, "LbmControlData","cpTimescale", false); + cpMirroring = attr->readString("controlparticle"+suffix+"_mirror", cpMirroring, "LbmControlData","cpMirroring", false); + + LbmFloat cpsWidth = cset->mCparts->getCPSWith(); + cpsWidth = attr->readFloat("controlparticle"+suffix+"_cpswidth", cpsWidth, "LbmControlData","cpsWidth", false); + LbmFloat cpsDt = cset->mCparts->getCPSTimestep(); + cpsDt = attr->readFloat("controlparticle"+suffix+"_cpstimestep", cpsDt, "LbmControlData","cpsDt", false); + LbmFloat cpsTstart = cset->mCparts->getCPSTimeStart(); + cpsTstart = attr->readFloat("controlparticle"+suffix+"_cpststart", cpsTstart, "LbmControlData","cpsTstart", false); + LbmFloat cpsTend = cset->mCparts->getCPSTimeEnd(); + cpsTend = attr->readFloat("controlparticle"+suffix+"_cpstend", cpsTend, "LbmControlData","cpsTend", false); + LbmFloat cpsMvmfac = cset->mCparts->getCPSMvmWeightFac(); + cpsMvmfac = attr->readFloat("controlparticle"+suffix+"_cpsmvmfac", cpsMvmfac, "LbmControlData","cpsMvmfac", false); + cset->mCparts->setCPSWith(cpsWidth); + cset->mCparts->setCPSTimestep(cpsDt); + cset->mCparts->setCPSTimeStart(cpsTstart); + cset->mCparts->setCPSTimeEnd(cpsTend); + cset->mCparts->setCPSMvmWeightFac(cpsMvmfac); + + cset->mCparts->setOffset( vec2L(cset->mcCpOffset.get(0.)) ); + cset->mCparts->setScale( vec2L(cset->mcCpScale.get(0.)) ); + cset->mCparts->setInitTimeScale( cpTimescale ); + cset->mCparts->setInitMirror( cpMirroring ); + + int mDebugInit = 0; + mDebugInit = attr->readInt("controlparticle"+suffix+"_debuginit", mDebugInit,"LbmControlData","mDebugInit", false); + cset->mCparts->setDebugInit(mDebugInit); + + // motion particle settings + LbmVec mcpOffset(0.), mcpScale(1.); + LbmFloat mcpTimescale = 1.; + string mcpMirroring(""); + + cset->mCpmotionFile = attr->readString("cpmotion"+suffix+"_file",cset->mCpmotionFile,"LbmControlData","mCpmotionFile", false); + mcpTimescale = attr->readFloat("cpmotion"+suffix+"_timescale", mcpTimescale, "LbmControlData","mcpTimescale", false); + mcpMirroring = attr->readString("cpmotion"+suffix+"_mirror", mcpMirroring, "LbmControlData","mcpMirroring", false); + mcpOffset = vec2L( attr->readVec3d("cpmotion"+suffix+"_offset", vec2P(mcpOffset),"LbmControlData","cpOffset", false) ); + mcpScale = vec2L( attr->readVec3d("cpmotion"+suffix+"_scale", vec2P(mcpScale), "LbmControlData","cpScale", false) ); + + cset->mCpmotion->setOffset( vec2L(mcpOffset) ); + cset->mCpmotion->setScale( vec2L(mcpScale) ); + cset->mCpmotion->setInitTimeScale( mcpTimescale ); + cset->mCpmotion->setInitMirror( mcpMirroring ); + + if(cset->mContrPartFile.length()>1) { + errMsg("LbmControlData","Using control particle set "<mContrPartFile<<" cpmfile:"<mCpmotionFile<<" mirr:'"<mCpmotion->getInitMirror()<<"' " ); + mCons.push_back( cset ); + } else { + delete cset; + } + } + + // debug, testing - make sure theres at least an empty set + if(mCons.size()<1) { + mCons.push_back( new LbmControlSet() ); + mCons[0]->initCparts(); + } + + // take from first set + for(int cpii=1; cpii<(int)mCons.size(); cpii++) { + mCons[cpii]->mCparts->setRadiusMinMaxd( mCons[0]->mCparts->getRadiusMinMaxd() ); + mCons[cpii]->mCparts->setRadiusMaxd( mCons[0]->mCparts->getRadiusMaxd() ); + mCons[cpii]->mCparts->setInfluenceAttraction( mCons[0]->mCparts->getInfluenceAttraction() ); + mCons[cpii]->mCparts->setInfluenceTangential( mCons[0]->mCparts->getInfluenceTangential() ); + mCons[cpii]->mCparts->setInfluenceVelocity( mCons[0]->mCparts->getInfluenceVelocity() , 0.01 ); // dummy dt + mCons[cpii]->mCparts->setInfluenceMaxdist( mCons[0]->mCparts->getInfluenceMaxdist() ); + } + + // invert for usage in relax macro + mDiffVelCon = 1.-attr->readFloat("cpdiffvelcon", mDiffVelCon, "LbmControlData","mDiffVelCon", false); + + mDebugCpscale = attr->readFloat("cpdebug_cpscale", mDebugCpscale, "LbmControlData","mDebugCpscale", false); + mDebugMaxdScale = attr->readFloat("cpdebug_maxdscale", mDebugMaxdScale, "LbmControlData","mDebugMaxdScale", false); + mDebugAttScale = attr->readFloat("cpdebug_attscale", mDebugAttScale, "LbmControlData","mDebugAttScale", false); + mDebugVelScale = attr->readFloat("cpdebug_velscale", mDebugVelScale, "LbmControlData","mDebugVelScale", false); + mDebugCompavScale = attr->readFloat("cpdebug_compavscale", mDebugCompavScale, "LbmControlData","mDebugCompavScale", false); + mDebugAvgVelScale = attr->readFloat("cpdebug_avgvelsc", mDebugAvgVelScale, "LbmControlData","mDebugAvgVelScale", false); +} + + +void +LbmFsgrSolver::initCpdata() +{ + // enable for cps via env. vars + //if( (getenv("ELBEEM_CPINFILE")) || (getenv("ELBEEM_CPOUTFILE")) ){ mUseTestdata=1; } + + // NT blender integration manual test setup + if(1) { + // manually switch on! if this is zero, nothing is done... + mpControl->mSetForceStrength = this->mTForceStrength = 1.; + mpControl->mCons.clear(); + + // add new set + LbmControlSet *cset; + + cset = new LbmControlSet(); + cset->initCparts(); + // dont load any file + cset->mContrPartFile = string(""); + + // set radii for attraction & velocity forces + // set strength of the forces + // don't set directly! but use channels: + // mcForceAtt, mcForceVel, mcForceMaxd, mcRadiusAtt, mcRadiusVel, mcRadiusMind, mcRadiusMaxd etc. + + // wrong: cset->mCparts->setInfluenceAttraction(1.15); cset->mCparts->setRadiusAtt(1.5); + // right, e.g., to init some constant values: + cset->mcForceAtt = AnimChannel(0.2); + cset->mcRadiusAtt = AnimChannel(0.75); + cset->mcForceVel = AnimChannel(0.2); + cset->mcRadiusVel = AnimChannel(0.75); + + // this value can be left at 0.5: + cset->mCparts->setCPSMvmWeightFac(0.5); + + mpControl->mCons.push_back( cset ); + + // instead of reading from file (cset->mContrPartFile), manually init some particles + mpControl->mCons[0]->mCparts->initBlenderTest(); + + // other values that might be interesting to change: + //cset->mCparts->setCPSTimestep(0.02); + //cset->mCparts->setCPSTimeStart(0.); + //cset->mCparts->setCPSTimeEnd(1.); + + //mpControl->mDiffVelCon = 1.; // more rigid velocity control, 0 (default) allows more turbulence + } + + // control particle ------------------------------------------------------------------------------------- + + // init cppf stage, use set 0! + if(mCppfStage>0) { + if(mpControl->mCpOutfile.length()<1) mpControl->mCpOutfile = string("cpout"); // use getOutFilename !? + char strbuf[100]; + const char *cpFormat = "_d%dcppf%d"; + + // initial coarse stage, no input + if(mCppfStage==1) { + mpControl->mCons[0]->mContrPartFile = ""; + } else { + // read from prev stage + snprintf(strbuf,100, cpFormat ,LBMDIM,mCppfStage-1); + mpControl->mCons[0]->mContrPartFile = mpControl->mCpOutfile; + mpControl->mCons[0]->mContrPartFile += strbuf; + mpControl->mCons[0]->mContrPartFile += ".cpart2"; + } + + snprintf(strbuf,100, cpFormat ,LBMDIM,mCppfStage); + mpControl->mCpOutfile += strbuf; + } // */ + + for(int cpssi=0; cpssi<(int)mpControl->mCons.size(); cpssi++) { + ControlParticles *cparts = mpControl->mCons[cpssi]->mCparts; + ControlParticles *cpmotion = mpControl->mCons[cpssi]->mCpmotion; + + // now set with real dt + cparts->setInfluenceVelocity( mpControl->mCons[cpssi]->mcForceVel.get(0.), mLevel[mMaxRefine].timestep); + cparts->setCharLength( mLevel[mMaxRefine].nodeSize ); + cparts->setCharLength( mLevel[mMaxRefine].nodeSize ); + errMsg("LbmControlData","CppfStage "<mCons[cpssi]->mContrPartFile<< + " out:"<mCpOutfile<<" cl:"<< cparts->getCharLength() ); + + // control particle test init + if(mpControl->mCons[cpssi]->mCpmotionFile.length()>=1) cpmotion->initFromTextFile(mpControl->mCons[cpssi]->mCpmotionFile); + // not really necessary... + //? cparts->setFluidSpacing( mLevel[mMaxRefine].nodeSize ); // use grid coords!? + //? cparts->calculateKernelWeight(); + //? debMsgStd("LbmFsgrSolver::initCpdata",DM_MSG,"ControlParticles - motion inited: "<getSize() ,10); + + // ensure both are on for env. var settings + // when no particles, but outfile enabled, initialize + const int lev = mMaxRefine; + if((mpParticles) && (mpControl->mCpOutfile.length()>=1) && (cpssi==0)) { + // check if auto num + if( (mpParticles->getNumInitialParticles()<=1) && + (mpParticles->getNumParticles()<=1) ) { // initParticles done afterwards anyway + int tracers = 0; + const int workSet = mLevel[lev].setCurr; + FSGR_FORIJK_BOUNDS(lev) { + if(RFLAG(lev,i,j,k, workSet)&(CFFluid)) tracers++; + } + if(LBMDIM==3) tracers /= 8; + else tracers /= 4; + mpParticles->setNumInitialParticles(tracers); + mpParticles->setDumpTextFile(mpControl->mCpOutfile); + debMsgStd("LbmFsgrSolver::initCpdata",DM_MSG,"ControlParticles - set tracers #"<getNumParticles() ,10); + } + if(mpParticles->getDumpTextInterval()<=0.) { + mpParticles->setDumpTextInterval(mLevel[lev].timestep * mLevel[lev].lSizex); + debMsgStd("LbmFsgrSolver::initCpdata",DM_MSG,"ControlParticles - dump delta t not set, using dti="<< mpParticles->getDumpTextInterval()<<", sim dt="<setDumpParts(true); // DEBUG? also dump as particle system + } + + if(mpControl->mCons[cpssi]->mContrPartFile.length()>=1) cparts->initFromTextFile(mpControl->mCons[cpssi]->mContrPartFile); + cparts->setFluidSpacing( mLevel[lev].nodeSize ); // use grid coords!? + cparts->calculateKernelWeight(); + debMsgStd("LbmFsgrSolver::initCpdata",DM_MSG,"ControlParticles mCons"<getTotalSize()<<","<getSize()<<" dt:"<getTimestep()<<" control time:"<getControlTimStart()<<" to "<getControlTimEnd() ,10); + } // cpssi + + if(getenv("ELBEEM_CPINFILE")) { + this->mTForceStrength = 1.0; + } + this->mTForceStrength = mpControl->mSetForceStrength; + if(mpControl->mCpOutfile.length()>=1) mpParticles->setDumpTextFile(mpControl->mCpOutfile); + + // control particle init end ------------------------------------------------------------------------------------- + + // make sure equiv to solver init + if(this->mTForceStrength>0.) { \ + mpControl->mCpForces.resize( mMaxRefine+1 ); + for(int lev = 0; lev<=mMaxRefine; lev++) { + LONGINT rcellSize = (mLevel[lev].lSizex*mLevel[lev].lSizey*mLevel[lev].lSizez); + debMsgStd("LbmFsgrSolver::initControl",DM_MSG,"mCpForces init, lev="<mCpForces[lev].resize( (int)(rcellSize+4) ); + //for(int i=0 ;imCpForces.push_back( ControlForces() ); + for(int i=0 ;imCpForces[lev][i].resetForces(); + } + } // on? + + debMsgStd("LbmFsgrSolver::initCpdata",DM_MSG,"ControlParticles #mCons "<mCons.size()<<" done", 6); +} + + +#define CPODEBUG 0 +//define CPINTER ((int)(mpControl->mCpUpdateInterval)) + +#define KERN(x,y,z) mpControl->mCpKernel[ (((z)*cpkarWidth + (y))*cpkarWidth + (x)) ] +#define MDKERN(x,y,z) mpControl->mMdKernel[ (((z)*mdkarWidth + (y))*mdkarWidth + (x)) ] + +#define BOUNDCHECK(x,low,high) ( ((x)high) ? high : (x) ) ) +#define BOUNDSKIP(x,low,high) ( ((x)high) ) + +void +LbmFsgrSolver::handleCpdata() +{ + myTime_t cpstart = getTime(); + int cpChecks=0; + int cpInfs=0; + //debMsgStd("ControlData::handleCpdata",DM_MSG,"called... "<mTForceStrength,1); + + // add cp influence + if((true) && (this->mTForceStrength>0.)) { + // ok continue... + } // on off + else { + return; + } + + if((mpControl->mCpUpdateInterval<1) || (this->mStepCnt%mpControl->mCpUpdateInterval==0)) { + // do full reinit later on... + } + else if(this->mStepCnt>mpControl->mCpUpdateInterval) { + // only reinit new cells + // TODO !? remove loop dependance!? +#define NOFORCEENTRY(lev, i,j,k) (LBMGET_FORCE(lev, i,j,k).maxDistance==CPF_MAXDINIT) + // interpolate missing + for(int lev=0; lev<=mMaxRefine; lev++) { + FSGR_FORIJK_BOUNDS(lev) { + if( (RFLAG(lev,i,j,k, mLevel[lev].setCurr)) & (CFFluid|CFInter) ) + //if( (RFLAG(lev,i,j,k, mLevel[lev].setCurr)) & (CFInter) ) + //if(0) + { // only check new inter? RFLAG?check + if(NOFORCEENTRY(lev, i,j,k)) { + //errMsg("CP","FE_MISSING at "<cDirNum; l++) { + int ni=i+this->dfVecX[l], nj=j+this->dfVecY[l], nk=k+this->dfVecZ[l]; + //errMsg("CP","FE_MISSING check "<0.) { + nbs = 1./nbs; + //? LBMGET_FORCE(lev, i,j,k).weightAtt = vals.weightAtt*nbs; + //? LBMGET_FORCE(lev, i,j,k).forceAtt = vals.forceAtt*nbs; + LBMGET_FORCE(lev, i,j,k).maxDistance = vals.maxDistance*nbs; + LBMGET_FORCE(lev, i,j,k).forceMaxd = vals.forceMaxd*nbs; + LBMGET_FORCE(lev, i,j,k).weightVel = vals.weightVel*nbs; + LBMGET_FORCE(lev, i,j,k).forceVel = vals.forceVel*nbs; + } + /*ControlForces *ff = &LBMGET_FORCE(lev, i,j,k); // DEBUG + errMsg("CP","FE_MISSING rec at "<weightAtt<<" wa:" <forceAtt[0],ff->forceAtt[1],ff->forceAtt[2] ) + <<" v:"<weightVel<<" wv:" <forceVel[0],ff->forceVel[1],ff->forceVel[2] ) + <<" v:"<maxDistance<<" wv:" <forceMaxd[0],ff->forceMaxd[1],ff->forceMaxd[2] ) ); // DEBUG */ + // else errMsg("CP","FE_MISSING rec at "< mpControl->mCpUpdateInterval + return; + } else { + // nothing to do ... + return; + } + + // reset + for(int lev=0; lev<=mMaxRefine; lev++) { + FSGR_FORIJK_BOUNDS(lev) { LBMGET_FORCE(lev,i,j,k).resetForces(); } + } + // do setup for coarsest level + const int coarseLev = 0; + const int fineLev = mMaxRefine; + + // init for current time + for(int cpssi=0; cpssi<(int)mpControl->mCons.size(); cpssi++) { + ControlParticles *cparts = mpControl->mCons[cpssi]->mCparts; + + LbmControlSet *cset = mpControl->mCons[cpssi]; + cparts->setRadiusAtt(cset->mcRadiusAtt.get(mSimulationTime)); + cparts->setRadiusVel(cset->mcRadiusVel.get(mSimulationTime)); + cparts->setInfluenceAttraction(cset->mcForceAtt.get(mSimulationTime) ); + cparts->setInfluenceMaxdist(cset->mcForceMaxd.get(mSimulationTime) ); + cparts->setRadiusMinMaxd(cset->mcRadiusMind.get(mSimulationTime)); + cparts->setRadiusMaxd(cset->mcRadiusMaxd.get(mSimulationTime)); + cparts->calculateKernelWeight(); // always necessary!? + cparts->setOffset( vec2L(cset->mcCpOffset.get(mSimulationTime)) ); + cparts->setScale( vec2L(cset->mcCpScale.get(mSimulationTime)) ); + + cparts->setInfluenceVelocity( cset->mcForceVel.get(mSimulationTime), mLevel[fineLev].timestep ); + cparts->setLastOffset( vec2L(cset->mcCpOffset.get(mSimulationTime-mLevel[fineLev].timestep)) ); + cparts->setLastScale( vec2L(cset->mcCpScale.get(mSimulationTime-mLevel[fineLev].timestep)) ); + } + + // check actual values + LbmFloat iatt = mpControl->mCons[0]->mCparts->getInfluenceAttraction(); + LbmFloat ivel = mpControl->mCons[0]->mCparts->getInfluenceVelocity(); + LbmFloat imaxd = mpControl->mCons[0]->mCparts->getInfluenceMaxdist(); + //errMsg("FINCIT","iatt="<mCons[1]->mCparts->getInfluenceAttraction(); //ivel = mpControl->mCons[1]->mCparts->getInfluenceVelocity(); //imaxd = mpControl->mCons[1]->mCparts->getInfluenceMaxdist(); // TTTTTT + + // do control setup + for(int cpssi=0; cpssi<(int)mpControl->mCons.size(); cpssi++) { + ControlParticles *cparts = mpControl->mCons[cpssi]->mCparts; + ControlParticles *cpmotion = mpControl->mCons[cpssi]->mCpmotion; + + // TEST!? + bool radmod = false; + const LbmFloat minRadSize = mLevel[coarseLev].nodeSize * 1.5; + if((cparts->getRadiusAtt()>0.) && (cparts->getRadiusAtt()getRadiusAtt(); radmod=true; + debMsgStd("ControlData::initControl",DM_MSG,"Modified radii att, fac="<setRadiusAtt(cparts->getRadiusAtt()*radfac); + cparts->setRadiusVel(cparts->getRadiusVel()*radfac); + cparts->setRadiusMaxd(cparts->getRadiusMaxd()*radfac); + cparts->setRadiusMinMaxd(cparts->getRadiusMinMaxd()*radfac); + } else if((cparts->getRadiusVel()>0.) && (cparts->getRadiusVel()getRadiusVel(); + debMsgStd("ControlData::initControl",DM_MSG,"Modified radii vel, fac="<setRadiusVel(cparts->getRadiusVel()*radfac); + cparts->setRadiusMaxd(cparts->getRadiusMaxd()*radfac); + cparts->setRadiusMinMaxd(cparts->getRadiusMinMaxd()*radfac); + } else if((cparts->getRadiusMaxd()>0.) && (cparts->getRadiusMaxd()getRadiusMaxd(); + debMsgStd("ControlData::initControl",DM_MSG,"Modified radii maxd, fac="<setRadiusMaxd(cparts->getRadiusMaxd()*radfac); + cparts->setRadiusMinMaxd(cparts->getRadiusMinMaxd()*radfac); + } + if(radmod) { + debMsgStd("ControlData::initControl",DM_MSG,"Modified radii: att="<< + cparts->getRadiusAtt()<<", vel=" << cparts->getRadiusVel()<<", maxd=" << + cparts->getRadiusMaxd()<<", mind=" << cparts->getRadiusMinMaxd() ,5); + } + + cpmotion->prepareControl( mSimulationTime+((LbmFloat)mpControl->mCpUpdateInterval)*(mpParam->getTimestep()), mpParam->getTimestep(), NULL ); + cparts->prepareControl( mSimulationTime+((LbmFloat)mpControl->mCpUpdateInterval)*(mpParam->getTimestep()), mpParam->getTimestep(), cpmotion ); + } + + // do control... + for(int lev=0; lev<=mMaxRefine; lev++) { + LbmFloat levVolume = 1.; + LbmFloat levForceScale = 1.; + for(int ll=lev; llgetRadiusAtt()<<" gsx"<getSize(); cppi++) { + ControlParticle *cp = cparts->getParticle(cppi); + if(cp->influence<=0.) continue; + const int cpi = (int)( (cp->pos[0]-goffx)/gsx ); + const int cpj = (int)( (cp->pos[1]-goffy)/gsy ); + int cpk = (int)( (cp->pos[2]-goffz)/gsz ); + /*if( ((LBMDIM==3)&&(BOUNDSKIP(cpk - cpwsm, getForZMinBnd(), getForZMaxBnd(lev) ))) || + ((LBMDIM==3)&&(BOUNDSKIP(cpk + cpwsm, getForZMinBnd(), getForZMaxBnd(lev) ))) || + BOUNDSKIP(cpj - cpwsm, 0, mLevel[lev].lSizey ) || + BOUNDSKIP(cpj + cpwsm, 0, mLevel[lev].lSizey ) || + BOUNDSKIP(cpi - cpwsm, 0, mLevel[lev].lSizex ) || + BOUNDSKIP(cpi + cpwsm, 0, mLevel[lev].lSizex ) ) { + continue; + } // */ + int is,ie,js,je,ks,ke; + ks = BOUNDCHECK(cpk - cpw, getForZMinBnd(), getForZMaxBnd(lev) ); + ke = BOUNDCHECK(cpk + cpw, getForZMinBnd(), getForZMaxBnd(lev) ); + js = BOUNDCHECK(cpj - cpw, 0, mLevel[lev].lSizey ); + je = BOUNDCHECK(cpj + cpw, 0, mLevel[lev].lSizey ); + is = BOUNDCHECK(cpi - cpw, 0, mLevel[lev].lSizex ); + ie = BOUNDCHECK(cpi + cpw, 0, mLevel[lev].lSizex ); + if(LBMDIM==2) { cpk = 0; ks = 0; ke = 1; } + if(CPODEBUG) errMsg("cppft","i"<weightAtt; + // control particle mod, + // dont add multiple CFFluid fsgr boundaries + if(lev==mMaxRefine) { + //if( ( ((*pflag)&(CFFluid )) && (lev==mMaxRefine) ) || + //( ((*pflag)&(CFGrNorm)) && (lev density += levVolume* kk->weightAtt; // old CFFluid + } else if( (*pflag) & (CFEmpty) ) { + cp->density -= levVolume* 0.5; + } else { //if( ((*pflag) & (CFBnd)) ) { + cp->density -= levVolume* 0.2; // penalty + } + } else { + //if((*pflag)&(CFGrNorm)) { + //cp->density += levVolume* kk->weightAtt; // old CFFluid + //} + } + //else if(!((*pflag) & (CFUnused)) ) { cp->density -= levVolume* 0.2; } // penalty + + if( (*pflag) & (CFFluid|CFInter) ) // RFLAG_check + { + + cpChecks++; + //const LbmFloat pwforce = kk->weightAtt; + LbmFloat pwvel = kk->weightVel; + if((pwforce==0.)&&(pwvel==0.)) { continue; } + ff->weightAtt += 1e-6; // for distance + + if(pwforce>0.) { + ff->weightAtt += pwforce *cp->densityWeight *cp->influence; + ff->forceAtt += kk->forceAtt *levForceScale *cp->densityWeight *cp->influence; + + // old fill handling here + const int workSet =mLevel[lev].setCurr; + LbmFloat ux=0., uy=0., uz=0.; + FORDF1{ + const LbmFloat dfn = QCELL(lev, i,j,k, workSet, l); + ux += (this->dfDvecX[l]*dfn); + uy += (this->dfDvecY[l]*dfn); + uz += (this->dfDvecZ[l]*dfn); + } + // control particle mod + cp->avgVelWeight += levVolume*pwforce; + cp->avgVelAcc += LbmVec(ux,uy,uz) * levVolume*pwforce; + } + + if(pwvel>0.) { + // TODO make switch? vel.influence depends on density weight... + // (reduced lowering with 0.75 factor) + pwvel *= cp->influence *(1.-0.75*cp->densityWeight); + // control particle mod + // todo use Omega instead!? + ff->forceVel += cp->vel*levVolume*pwvel * velLatticeScale; // levVolume? + ff->weightVel += levVolume*pwvel; // levVolume? + ff->compAv += cp->avgVel*levVolume*pwvel; // levVolume? + ff->compAvWeight += levVolume*pwvel; // levVolume? + } + + if(CPODEBUG) errMsg("cppft","i"<weightAtt<<" wa:" + //<forceAtt[0],ff->forceAtt[1],ff->forceAtt[2] ) + //<<" v:"<weightVel<<" wv:" + //<forceVel[0],ff->forceVel[1],ff->forceVel[2] ) + //<<" v:"<maxDistance<<" wv:" + //<forceMaxd[0],ff->forceMaxd[1],ff->forceMaxd[2] ) + ); + } // celltype + + } // ijk + } // ijk + } // ijk + } // cpi, end first cp loop (att,vel) + debMsgStd("LbmFsgrSolver::handleCpdata",DM_MSG,"Force cpgrid "<mCons.size(); cpssi++) { + ControlParticles *cparts = mpControl->mCons[cpssi]->mCparts; + + // WARNING copied from above! + const LbmFloat velLatticeScale = mLevel[lev].timestep/mLevel[lev].nodeSize; + LbmFloat gsx = ((mvGeoEnd[0]-mvGeoStart[0])/(LbmFloat)mLevel[lev].lSizex); + LbmFloat gsy = ((mvGeoEnd[1]-mvGeoStart[1])/(LbmFloat)mLevel[lev].lSizey); + LbmFloat gsz = ((mvGeoEnd[2]-mvGeoStart[2])/(LbmFloat)mLevel[lev].lSizez); +#if LBMDIM==2 + gsz = gsx; +#endif + LbmFloat goffx = mvGeoStart[0]; + LbmFloat goffy = mvGeoStart[1]; + LbmFloat goffz = mvGeoStart[2]; + + //const LbmFloat cpwIncFac = 2.0; + const int mdw = MIN( mLevel[lev].lSizex/2, MAX( (int)( cparts->getRadiusMaxd() /gsx) +1 , 2) ); // wide kernel, md + const int mdkarWidth = 2*mdw+1; + mpControl->mMdKernel.resize(mdkarWidth* mdkarWidth* mdkarWidth); + ControlParticle cpt; cpt.reset(); + cpt.density = 0.5; cpt.densityWeight = 0.5; + cpt.pos = LbmVec( (gsx*(LbmFloat)mdw)+goffx, (gsy*(LbmFloat)mdw)+goffy, (gsz*(LbmFloat)mdw)+goffz ); // optimize? +#if LBMDIM==3 + for(int k= 0; kcalculateMaxdForce( &cpt, pos, &MDKERN(i,j,k) ); + } + } + + // second cpi loop, maxd forces + if(cparts->getInfluenceMaxdist()>0.) { + for(int cppi=0; cppigetSize(); cppi++) { + ControlParticle *cp = cparts->getParticle(cppi); + if(cp->influence<=0.) continue; + const int cpi = (int)( (cp->pos[0]-goffx)/gsx ); + const int cpj = (int)( (cp->pos[1]-goffy)/gsy ); + int cpk = (int)( (cp->pos[2]-goffz)/gsz ); + + int is,ie,js,je,ks,ke; + ks = BOUNDCHECK(cpk - mdw, getForZMinBnd(), getForZMaxBnd(lev) ); + ke = BOUNDCHECK(cpk + mdw, getForZMinBnd(), getForZMaxBnd(lev) ); + js = BOUNDCHECK(cpj - mdw, 0, mLevel[lev].lSizey ); + je = BOUNDCHECK(cpj + mdw, 0, mLevel[lev].lSizey ); + is = BOUNDCHECK(cpi - mdw, 0, mLevel[lev].lSizex ); + ie = BOUNDCHECK(cpi + mdw, 0, mLevel[lev].lSizex ); + if(LBMDIM==2) { cpk = 0; ks = 0; ke = 1; } + if(CPODEBUG) errMsg("cppft","i"<weightAtt == 0.) { + ControlForces *kk = &MDKERN( i-cpi+mdw, j-cpj+mdw, k-cpk+mdw); + const LbmFloat pmdf = kk->maxDistance; + if((ff->maxDistance > pmdf) || (ff->maxDistance<0.)) + ff->maxDistance = pmdf; + ff->forceMaxd = kk->forceMaxd; + // todo use Omega instead!? + ff->forceVel = cp->vel* velLatticeScale; + } + } // celltype + } } // ijk + } // cpi, md loop + } // maxd inf>0 */ + + + debMsgStd("ControlData::initControl",DM_MSG,"Maxd cpgrid "<mCons[0]->mCparts->finishControl( mpControl->mCpForces[lev], iatt,ivel,imaxd ); + + } // lev loop + + myTime_t cpend = getTime(); + debMsgStd("ControlData::handleCpdata",DM_MSG,"Time for cpgrid generation:"<< getTimeString(cpend-cpstart)<<", checks:"<mCons.size(); cpssi++) { + ControlParticles *cparts = mpControl->mCons[cpssi]->mCparts; + //ControlParticles *cpmotion = mpControl->mCons[cpssi]->mCpmotion; + // display cp parts + const bool cpCubes = false; + const bool cpDots = true; + const bool cpCpdist = true; + const bool cpHideIna = true; + glShadeModel(GL_FLAT); + glDisable( GL_LIGHTING ); // dont light lines + + // dot influence + if((mpControl->mDebugCpscale>0.) && cpDots) { + glPointSize(mpControl->mDebugCpscale * 8.); + glBegin(GL_POINTS); + for(int i=0; igetSize(); i++) { + if((cpHideIna)&&( (cparts->getParticle(i)->influence<=0.) || (cparts->getParticle(i)->size<=0.) )) continue; + ntlVec3Gfx org( vec2G(cparts->getParticle(i)->pos ) ); + //LbmFloat halfsize = 0.5; + LbmFloat scale = cparts->getParticle(i)->densityWeight; + //glColor4f( scale,scale,scale,scale ); + glColor4f( 0.,scale,0.,scale ); + glVertex3f( org[0],org[1],org[2] ); + //errMsg("lbmDebugDisplay","CP "<mDebugCpscale>0.) && cpDots) { + glPointSize(mpControl->mDebugCpscale * 3.); + glBegin(GL_POINTS); + glColor3f( 0,1,0 ); + } + for(int i=0; igetSize(); i++) { + if((cpHideIna)&&( (cparts->getParticle(i)->influence<=0.) || (cparts->getParticle(i)->size<=0.) )) continue; + ntlVec3Gfx org( vec2G(cparts->getParticle(i)->pos ) ); + LbmFloat halfsize = 0.5; + LbmFloat scale = cparts->getRadiusAtt() * cparts->getParticle(i)->densityWeight; + if(cpCubes){ glLineWidth( 1 ); + glColor3f( 1,1,1 ); + ntlVec3Gfx s = org-(halfsize * (scale)); + ntlVec3Gfx e = org+(halfsize * (scale)); + drawCubeWire( s,e ); } + if((mpControl->mDebugCpscale>0.) && cpDots) { + glVertex3f( org[0],org[1],org[2] ); + } + } + if(cpDots) glEnd(); + + if(mpControl->mDebugAvgVelScale>0.) { + const float scale = mpControl->mDebugAvgVelScale; + + glColor3f( 1.0,1.0,1 ); + glBegin(GL_LINES); + for(int i=0; igetSize(); i++) { + if((cpHideIna)&&( (cparts->getParticle(i)->influence<=0.) || (cparts->getParticle(i)->size<=0.) )) continue; + ntlVec3Gfx org( vec2G(cparts->getParticle(i)->pos ) ); + + //errMsg("CPAVGVEL","i"<getParticle(i)->avgVel);// DEBUG + float dx = cparts->getParticle(i)->avgVel[0]; + float dy = cparts->getParticle(i)->avgVel[1]; + float dz = cparts->getParticle(i)->avgVel[2]; + dx *= scale; dy *= scale; dz *= scale; + glVertex3f( org[0],org[1],org[2] ); + glVertex3f( org[0]+dx,org[1]+dy,org[2]+dz ); + } + glEnd(); + } // */ + + if( (LBMDIM==2) && (cpCpdist) ) { + + // debug, for use of e.g. LBMGET_FORCE LbmControlData *mpControl = this; +# define TESTGET_FORCE(lev,i,j,k) mpControl->mCpForces[lev][ ((k*mLevel[lev].lSizey)+j)*mLevel[lev].lSizex+i ] + + glBegin(GL_LINES); + //const int lev=0; + for(int lev=0; lev<=mMaxRefine; lev++) { + FSGR_FORIJK_BOUNDS(lev) { + LbmVec pos = LbmVec( + ((mvGeoEnd[0]-mvGeoStart[0])/(LbmFloat)mLevel[lev].lSizex) * ((LbmFloat)i+0.5) + mvGeoStart[0], + ((mvGeoEnd[1]-mvGeoStart[1])/(LbmFloat)mLevel[lev].lSizey) * ((LbmFloat)j+0.5) + mvGeoStart[1], + ((mvGeoEnd[2]-mvGeoStart[2])/(LbmFloat)mLevel[lev].lSizez) * ((LbmFloat)k+0.5) + mvGeoStart[2] ); + if(LBMDIM==2) pos[2] = ((mvGeoEnd[2]-mvGeoStart[2])*0.5 + mvGeoStart[2]); + + if((mpControl->mDebugMaxdScale>0.) && (TESTGET_FORCE(lev,i,j,k).weightAtt<=0.) ) + if(TESTGET_FORCE(lev,i,j,k).maxDistance>=0.) + if(TESTGET_FORCE(lev,i,j,k).maxDistancemDebugMaxdScale*10001.; + float dx = TESTGET_FORCE(lev,i,j,k).forceMaxd[0]; + float dy = TESTGET_FORCE(lev,i,j,k).forceMaxd[1]; + float dz = TESTGET_FORCE(lev,i,j,k).forceMaxd[2]; + dx *= scale; dy *= scale; dz *= scale; + glColor3f( 0,1,0 ); + glVertex3f( pos[0],pos[1],pos[2] ); + glVertex3f( pos[0]+dx,pos[1]+dy,pos[2]+dz ); + } // */ + if((mpControl->mDebugAttScale>0.) && (TESTGET_FORCE(lev,i,j,k).weightAtt>0.)) { + const float scale = mpControl->mDebugAttScale*100011.; + float dx = TESTGET_FORCE(lev,i,j,k).forceAtt[0]; + float dy = TESTGET_FORCE(lev,i,j,k).forceAtt[1]; + float dz = TESTGET_FORCE(lev,i,j,k).forceAtt[2]; + dx *= scale; dy *= scale; dz *= scale; + glColor3f( 1,0,0 ); + glVertex3f( pos[0],pos[1],pos[2] ); + glVertex3f( pos[0]+dx,pos[1]+dy,pos[2]+dz ); + } // */ + // why check maxDistance? + if((mpControl->mDebugVelScale>0.) && (TESTGET_FORCE(lev,i,j,k).maxDistance+TESTGET_FORCE(lev,i,j,k).weightVel>0.)) { + float scale = mpControl->mDebugVelScale*1.; + float wvscale = TESTGET_FORCE(lev,i,j,k).weightVel; + float dx = TESTGET_FORCE(lev,i,j,k).forceVel[0]; + float dy = TESTGET_FORCE(lev,i,j,k).forceVel[1]; + float dz = TESTGET_FORCE(lev,i,j,k).forceVel[2]; + scale *= wvscale; + dx *= scale; dy *= scale; dz *= scale; + glColor3f( 0.2,0.2,1 ); + glVertex3f( pos[0],pos[1],pos[2] ); + glVertex3f( pos[0]+dx,pos[1]+dy,pos[2]+dz ); + } // */ + if((mpControl->mDebugCompavScale>0.) && (TESTGET_FORCE(lev,i,j,k).compAvWeight>0.)) { + const float scale = mpControl->mDebugCompavScale*1.; + float dx = TESTGET_FORCE(lev,i,j,k).compAv[0]; + float dy = TESTGET_FORCE(lev,i,j,k).compAv[1]; + float dz = TESTGET_FORCE(lev,i,j,k).compAv[2]; + dx *= scale; dy *= scale; dz *= scale; + glColor3f( 0.2,0.2,1 ); + glVertex3f( pos[0],pos[1],pos[2] ); + glVertex3f( pos[0]+dx,pos[1]+dy,pos[2]+dz ); + } // */ + } // att,maxd + } + glEnd(); + } + } // cpssi + + //fprintf(stderr,"BLA\n"); + glEnable( GL_LIGHTING ); // dont light lines + glShadeModel(GL_SMOOTH); +} + +#else // LBM_USE_GUI==1 +void LbmFsgrSolver::cpDebugDisplay(int dispset) { } +#endif // LBM_USE_GUI==1 + + diff --git a/intern/elbeem/intern/solver_control.h b/intern/elbeem/intern/solver_control.h new file mode 100644 index 00000000000..ea4ae74e6a6 --- /dev/null +++ b/intern/elbeem/intern/solver_control.h @@ -0,0 +1,187 @@ +/****************************************************************************** + * + * El'Beem - the visual lattice boltzmann freesurface simulator + * All code distributed as part of El'Beem is covered by the version 2 of the + * GNU General Public License. See the file COPYING for details. + * Copyright 2003-2006 Nils Thuerey + * + * testing extensions + * + *****************************************************************************/ + + +#ifndef LBM_TESTCLASS_H +#define LBM_TESTCLASS_H + +//class IsoSurface; +class ParticleObject; +class ControlParticles; +class ControlForces; + +//#define NUMGRIDS 2 +//#define MAXNUMSWS 10 + +// farfield modes +#define FARF_3DONLY -1 +#define FARF_BOTH 0 +#define FARF_SWEONLY 1 +// dont reuse 3d vars/init +#define FARF_SEPSWE 2 + +// relaxation macros for solver_relax.h +#if LBM_INCLUDE_CONTROL!=1 + +// defined in relax.h + +#else // LBM_INCLUDE_TESTSOLVERS!=1 + +// WARNING has to match controlparts.h +#define CPF_ENTRIES 12 +#define CPF_FORCE 0 +#define CPF_VELWEIGHT 3 +#define CPF_VELOCITY 4 +#define CPF_FORCEWEIGHT 7 +#define CPF_MINCPDIST 8 +#define CPF_MINCPDIR 9 + +#include "controlparticles.h" + +// get force entry, set=0 is unused anyway +#define LBMGET_FORCE(lev, i,j,k) mpControl->mCpForces[lev][ (LBMGI(lev,i,j,k,0)) ] + +// debug mods off... +// same as in src/solver_relax.h! +#define __PRECOLLIDE_MODS(rho,ux,uy,uz, grav) \ + ux += (grav)[0]; \ + uy += (grav)[1]; \ + uz += (grav)[2]; + +//void testMaxdmod(int i, int j,int k, LbmFloat &ux,LbmFloat &uy,LbmFloat &uz,ControlForces &ff); +#if LBMDIM==3 +#define MAXDGRAV \ + if(myforce->forceMaxd[0]*ux+myforce->forceMaxd[1]*uyforceVel[0]+ v2wi*ux; \ + uy = v2w*myforce->forceVel[1]+ v2wi*uy; } \ + /* movement inverse to g? */ \ + if((uz>LBM_EPSILON)&&(uz>myforce->forceVel[2])) { \ + uz = v2w*myforce->forceVel[2]+ v2wi*uz; } +#else // LBMDIM==3 +#define MAXDGRAV \ + if(myforce->forceMaxd[0]*uxforceVel[0]+ v2wi*ux; } \ + /* movement inverse to g? */ \ + if((uy>LBM_EPSILON)&&(uy>myforce->forceVel[1])) { \ + uy = v2w*myforce->forceVel[1]+ v2wi*uy; } +#endif // LBMDIM==3 + +// debug modifications of collide vars (testing) +// requires: lev,i,j,k +#define PRECOLLIDE_MODS(rho,ux,uy,uz, grav) \ + LbmFloat attforce = 1.; \ + if(this->mTForceStrength>0.) { \ + ControlForces* myforce = &LBMGET_FORCE(lev,i,j,k); \ + const LbmFloat vf = myforce->weightAtt;\ + const LbmFloat vw = myforce->weightVel;\ + if(vf!=0.) { attforce = MAX(0., 1.-vf); /* TODO FIXME? use ABS(vf) for repulsion force? */ \ + ux += myforce->forceAtt[0]; \ + uy += myforce->forceAtt[1]; \ + uz += myforce->forceAtt[2]; \ + \ + } else if(( myforce->maxDistance>0.) && ( myforce->maxDistancemCons[0]->mCparts->getInfluenceMaxdist() * \ + (myforce->maxDistance-mpControl->mCons[0]->mCparts->getRadiusMinMaxd()) / (mpControl->mCons[0]->mCparts->getRadiusMaxd()-mpControl->mCons[0]->mCparts->getRadiusMinMaxd()); \ + const LbmFloat v2wi = 1.-v2w; \ + if(v2w>0.){ MAXDGRAV; \ + /* errMsg("ERRMDTT","at "<forceVel<<" " ); */ \ + }\ + } \ + if(vw>0.) { \ + const LbmFloat vwi = 1.-vw;\ + const LbmFloat vwd = mpControl->mDiffVelCon;\ + ux += vw*(myforce->forceVel[0]-myforce->compAv[0] + vwd*(myforce->compAv[0]-ux) ); \ + uy += vw*(myforce->forceVel[1]-myforce->compAv[1] + vwd*(myforce->compAv[1]-uy) ); \ + uz += vw*(myforce->forceVel[2]-myforce->compAv[2] + vwd*(myforce->compAv[2]-uz) ); \ + /* TODO test!? modify smooth vel by influence of force for each lbm step, to account for force update only each N steps */ \ + myforce->compAv = (myforce->forceVel*vw+ myforce->compAv*vwi); \ + } \ + } \ + ux += (grav)[0]*attforce; \ + uy += (grav)[1]*attforce; \ + uz += (grav)[2]*attforce; \ + /* end PRECOLLIDE_MODS */ + +#define TEST_IF_CHECK \ + if((!iffilled)&&(LBMGET_FORCE(lev,i,j,k).weightAtt!=0.)) { \ + errMsg("TESTIFFILL"," at "< mcForceAtt; + AnimChannel mcForceVel; + AnimChannel mcForceMaxd; + + AnimChannel mcRadiusAtt; + AnimChannel mcRadiusVel; + AnimChannel mcRadiusMind; + AnimChannel mcRadiusMaxd; + + AnimChannel mcCpScale; + AnimChannel mcCpOffset; +}; + + + +// main control data storage +class LbmControlData +{ + public: + LbmControlData(); + virtual ~LbmControlData(); + + // control data + + // contorl params + void parseControldataAttrList(AttributeList *attr); + + // control strength, set for solver interface + LbmFloat mSetForceStrength; + // cp vars + std::vector mCons; + // update interval + int mCpUpdateInterval; + // output + string mCpOutfile; + // control particle precomputed influence + std::vector< std::vector > mCpForces; + std::vector mCpKernel; + std::vector mMdKernel; + // activate differential velcon + LbmFloat mDiffVelCon; + + // cp debug displau + LbmFloat mDebugCpscale, mDebugVelScale, mDebugCompavScale, mDebugAttScale, mDebugMaxdScale, mDebugAvgVelScale; +}; + +#endif // LBM_TESTCLASS_H diff --git a/intern/elbeem/intern/solver_init.cpp b/intern/elbeem/intern/solver_init.cpp index c953d2f47da..6dd654f57ff 100644 --- a/intern/elbeem/intern/solver_init.cpp +++ b/intern/elbeem/intern/solver_init.cpp @@ -328,7 +328,10 @@ LbmFsgrSolver::LbmFsgrSolver() : mInit2dYZ(false), mForceTadapRefine(-1), mCutoff(-1) { - // not much to do here... +#if LBM_INCLUDE_CONTROL==1 + mpControl = new LbmControlData(); +#endif + #if LBM_INCLUDE_TESTSOLVERS==1 mpTest = new LbmTestdata(); mMpNum = mMpIndex = 0; @@ -488,6 +491,10 @@ void LbmFsgrSolver::parseAttrList() mSimulationTime += starttimeskip; if(starttimeskip>0.) debMsgStd("LbmFsgrSolver::parseStdAttrList",DM_NOTIFY,"Used starttimeskip="<maxDefaultMemChunk) { + if(sizeof(void*)==4 && memEstFine>maxDefaultMemChunk) { // max memory chunk for 32bit systems 2gig memBlockAllocProblem = true; } @@ -1264,8 +1271,11 @@ bool LbmFsgrSolver::initializeSolverPostinit() { debMsgStd("LbmFsgrSolver::initialize",DM_MSG,"Init done ... ",10); mInitDone = 1; -#if LBM_INCLUDE_TESTSOLVERS==1 +#if LBM_INCLUDE_CONTROL==1 initCpdata(); +#endif // LBM_INCLUDE_CONTROL==1 + +#if LBM_INCLUDE_TESTSOLVERS==1 initTestdata(); #endif // ELBEEM_PLUGIN!=1 // not inited? dont use... diff --git a/intern/elbeem/intern/solver_main.cpp b/intern/elbeem/intern/solver_main.cpp index 13ebf91b696..616ac0e2a23 100644 --- a/intern/elbeem/intern/solver_main.cpp +++ b/intern/elbeem/intern/solver_main.cpp @@ -13,11 +13,6 @@ #include "loop_tools.h" #include -#if (defined (__sun__) || defined (__sun)) || (!defined(linux) && (defined (__sparc) || defined (__sparc__))) -#include -#endif - - /*****************************************************************************/ /*! perform a single LBM step */ /*****************************************************************************/ @@ -58,7 +53,7 @@ void LbmFsgrSolver::stepMain() { // init moving bc's, can change mMaxVlen initMovingObstacles(false); -#if LBM_INCLUDE_TESTSOLVERS==1 +#if LBM_INCLUDE_CONTROL==1 handleCpdata(); #endif diff --git a/intern/elbeem/intern/solver_relax.h b/intern/elbeem/intern/solver_relax.h index 287b73c77b2..db6e537aff3 100644 --- a/intern/elbeem/intern/solver_relax.h +++ b/intern/elbeem/intern/solver_relax.h @@ -15,7 +15,8 @@ #define CAUSE_PANIC { this->mPanic=1; } /*set flag*/ #endif // FSGR_STRICT_DEBUG==1 -#if LBM_INCLUDE_TESTSOLVERS!=1 +// #if LBM_INCLUDE_TESTSOLVERS!=1 +#if LBM_INCLUDE_CONTROL!=1 #define PRECOLLIDE_MODS(rho,ux,uy,uz, grav) \ ux += (grav)[0]; \ @@ -24,42 +25,9 @@ #define TEST_IF_CHECK -#else // LBM_INCLUDE_TESTSOLVERS!=1 -// defined in test.h - -#define NEWDIRVELMOTEST 0 -#if NEWDIRVELMOTEST==1 -// off for non testing -#undef PRECOLLIDE_MODS -#define PRECOLLIDE_MODS(rho,ux,uy,uz, grav) \ - ux += (grav)[0]; \ - uy += (grav)[1]; \ - uz += (grav)[2]; \ - { \ - int lev = mMaxRefine, nomb=0; \ - LbmFloat bcnt = 0.,nux=0.,nuy=0.,nuz=0.; \ - for(int l=1; lcDfNum; l++) { \ - if(RFLAG_NB(lev, i,j,k,SRCS(lev),l)&CFBnd) { \ - if(RFLAG_NB(lev, i,j,k,SRCS(lev),l)&CFBndMoving) { \ - nux += QCELL_NB(lev, i,j,k,SRCS(lev),l, dMass); \ - nuy += QCELL_NB(lev, i,j,k,SRCS(lev),l, dFfrac); \ - bcnt += 1.; \ - } else { \ - nomb++; \ - } \ - } \ - } \ - if((bcnt>0.)&&(nomb==0)) { \ - ux = nux/bcnt; \ - uy = nuy/bcnt; \ - uz = nuz/bcnt; \ - } \ - } -#else // NEWDIRVELMOTEST==1 -// off for non testing -#endif // NEWDIRVELMOTEST==1 - -#endif // LBM_INCLUDE_TESTSOLVERS!=1 +#else // LBM_INCLUDE_CONTROL!=1 +// defined in solver_control.h +#endif // LBM_INCLUDE_CONTROL!=1 /****************************************************************************** -- cgit v1.2.3 From 5d0a207ecb843c4c73be897cfccbf3a0d2db574b Mon Sep 17 00:00:00 2001 From: Chris Want Date: Wed, 16 Apr 2008 22:40:48 +0000 Subject: Patch from GSR that a) fixes a whole bunch of GPL/BL license blocks that were previously missed; and b) greatly increase my ohloh stats! --- intern/CMakeLists.txt | 9 ++--- intern/Makefile | 9 ++--- intern/SoundSystem/CMakeLists.txt | 9 ++--- intern/SoundSystem/Makefile | 9 ++--- intern/SoundSystem/SND_C-api.h | 9 ++--- intern/SoundSystem/SND_CDObject.h | 9 ++--- intern/SoundSystem/SND_DependKludge.h | 9 ++--- intern/SoundSystem/SND_DeviceManager.h | 9 ++--- intern/SoundSystem/SND_IAudioDevice.h | 9 ++--- intern/SoundSystem/SND_Object.h | 9 ++--- intern/SoundSystem/SND_Scene.h | 9 ++--- intern/SoundSystem/SND_SoundListener.h | 9 ++--- intern/SoundSystem/SND_SoundObject.h | 9 ++--- intern/SoundSystem/SND_Utils.h | 9 ++--- intern/SoundSystem/SND_WaveCache.h | 9 ++--- intern/SoundSystem/SND_WaveSlot.h | 9 ++--- intern/SoundSystem/SND_test/Makefile | 9 ++--- intern/SoundSystem/SND_test/SND_test.c | 9 ++--- intern/SoundSystem/SoundDefines.h | 9 ++--- intern/SoundSystem/dummy/Makefile | 9 ++--- intern/SoundSystem/dummy/SND_DummyDevice.cpp | 9 ++--- intern/SoundSystem/dummy/SND_DummyDevice.h | 9 ++--- intern/SoundSystem/fmod/Makefile | 9 ++--- intern/SoundSystem/fmod/SND_FmodDevice.cpp | 9 ++--- intern/SoundSystem/fmod/SND_FmodDevice.h | 9 ++--- intern/SoundSystem/intern/Makefile | 9 ++--- intern/SoundSystem/intern/SND_AudioDevice.cpp | 9 ++--- intern/SoundSystem/intern/SND_AudioDevice.h | 9 ++--- intern/SoundSystem/intern/SND_C-api.cpp | 9 ++--- intern/SoundSystem/intern/SND_CDObject.cpp | 9 ++--- intern/SoundSystem/intern/SND_DeviceManager.cpp | 9 ++--- intern/SoundSystem/intern/SND_IdObject.cpp | 9 ++--- intern/SoundSystem/intern/SND_IdObject.h | 9 ++--- intern/SoundSystem/intern/SND_Scene.cpp | 9 ++--- intern/SoundSystem/intern/SND_SoundListener.cpp | 9 ++--- intern/SoundSystem/intern/SND_SoundObject.cpp | 9 ++--- intern/SoundSystem/intern/SND_Utils.cpp | 9 ++--- intern/SoundSystem/intern/SND_WaveCache.cpp | 9 ++--- intern/SoundSystem/intern/SND_WaveSlot.cpp | 9 ++--- intern/SoundSystem/openal/Makefile | 9 ++--- intern/SoundSystem/openal/SND_OpenALDevice.cpp | 9 ++--- intern/SoundSystem/openal/SND_OpenALDevice.h | 9 ++--- intern/SoundSystem/openal/pthread_cancel.cpp | 9 ++--- intern/SoundSystem/sdl/Makefile | 9 ++--- intern/SoundSystem/sdl/SND_SDLCDDevice.cpp | 9 ++--- intern/SoundSystem/sdl/SND_SDLCDDevice.h | 9 ++--- intern/bmfont/BMF_Api.h | 9 ++--- intern/bmfont/BMF_Fonts.h | 9 ++--- intern/bmfont/BMF_Settings.h | 9 ++--- intern/bmfont/CMakeLists.txt | 9 ++--- intern/bmfont/Makefile | 9 ++--- intern/bmfont/intern/BMF_Api.cpp | 9 ++--- intern/bmfont/intern/BMF_BitmapFont.cpp | 9 ++--- intern/bmfont/intern/BMF_BitmapFont.h | 9 ++--- intern/bmfont/intern/BMF_FontData.h | 9 ++--- intern/bmfont/intern/BMF_font_helv10.cpp | 9 ++--- intern/bmfont/intern/BMF_font_helv12.cpp | 9 ++--- intern/bmfont/intern/BMF_font_helvb10.cpp | 9 ++--- intern/bmfont/intern/BMF_font_helvb12.cpp | 9 ++--- intern/bmfont/intern/BMF_font_helvb14.cpp | 9 ++--- intern/bmfont/intern/BMF_font_helvb8.cpp | 9 ++--- intern/bmfont/intern/BMF_font_scr12.cpp | 9 ++--- intern/bmfont/intern/BMF_font_scr14.cpp | 9 ++--- intern/bmfont/intern/BMF_font_scr15.cpp | 9 ++--- intern/bmfont/intern/Makefile | 9 ++--- intern/bmfont/test/Makefile | 9 ++--- intern/bmfont/test/simpletest/BMF_Test.cpp | 9 ++--- intern/bmfont/test/simpletest/Makefile | 9 ++--- intern/boolop/CMakeLists.txt | 9 ++--- intern/boolop/Makefile | 9 ++--- intern/boolop/extern/BOP_Interface.h | 9 ++--- intern/boolop/intern/BOP_BBox.cpp | 9 ++--- intern/boolop/intern/BOP_BBox.h | 9 ++--- intern/boolop/intern/BOP_BSPNode.cpp | 9 ++--- intern/boolop/intern/BOP_BSPNode.h | 9 ++--- intern/boolop/intern/BOP_BSPTree.cpp | 9 ++--- intern/boolop/intern/BOP_BSPTree.h | 9 ++--- intern/boolop/intern/BOP_Chrono.h | 9 ++--- intern/boolop/intern/BOP_Edge.cpp | 9 ++--- intern/boolop/intern/BOP_Edge.h | 9 ++--- intern/boolop/intern/BOP_Face.cpp | 9 ++--- intern/boolop/intern/BOP_Face.h | 9 ++--- intern/boolop/intern/BOP_Face2Face.cpp | 9 ++--- intern/boolop/intern/BOP_Face2Face.h | 9 ++--- intern/boolop/intern/BOP_Indexs.h | 9 ++--- intern/boolop/intern/BOP_Interface.cpp | 9 ++--- intern/boolop/intern/BOP_MathUtils.cpp | 9 ++--- intern/boolop/intern/BOP_MathUtils.h | 9 ++--- intern/boolop/intern/BOP_Merge.cpp | 9 ++--- intern/boolop/intern/BOP_Merge.h | 9 ++--- intern/boolop/intern/BOP_Mesh.cpp | 9 ++--- intern/boolop/intern/BOP_Mesh.h | 9 ++--- intern/boolop/intern/BOP_Segment.cpp | 9 ++--- intern/boolop/intern/BOP_Segment.h | 9 ++--- intern/boolop/intern/BOP_Splitter.cpp | 9 ++--- intern/boolop/intern/BOP_Splitter.h | 9 ++--- intern/boolop/intern/BOP_Tag.cpp | 9 ++--- intern/boolop/intern/BOP_Tag.h | 9 ++--- intern/boolop/intern/BOP_Triangulator.cpp | 9 ++--- intern/boolop/intern/BOP_Triangulator.h | 9 ++--- intern/boolop/intern/BOP_Vertex.cpp | 9 ++--- intern/boolop/intern/BOP_Vertex.h | 9 ++--- intern/boolop/intern/Makefile | 9 ++--- intern/bsp/CMakeLists.txt | 9 ++--- intern/bsp/Makefile | 9 ++--- intern/bsp/extern/CSG_BooleanOps.h | 9 ++--- intern/bsp/intern/BSP_CSGException.h | 9 ++--- intern/bsp/intern/BSP_CSGMesh.cpp | 9 ++--- intern/bsp/intern/BSP_CSGMesh.h | 9 ++--- intern/bsp/intern/BSP_CSGMesh_CFIterator.h | 9 ++--- intern/bsp/intern/BSP_MeshPrimitives.cpp | 9 ++--- intern/bsp/intern/BSP_MeshPrimitives.h | 9 ++--- intern/bsp/intern/CSG_BooleanOps.cpp | 9 ++--- intern/bsp/intern/Makefile | 9 ++--- intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp | 9 ++--- intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h | 9 ++--- intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp | 9 ++--- intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h | 9 ++--- intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp | 9 ++--- intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h | 9 ++--- intern/bsp/test/BSP_GhostTest/BSP_TMesh.h | 9 ++--- intern/bsp/test/BSP_GhostTest/Makefile | 9 ++--- intern/bsp/test/BSP_GhostTest/main.cpp | 9 ++--- intern/bsp/test/BSP_GhostTest/ply.h | 9 ++--- intern/bsp/test/BSP_GhostTest/plyfile.c | 9 ++--- intern/bsp/test/Makefile | 9 ++--- intern/container/CMakeLists.txt | 9 ++--- intern/container/CTR_List.h | 40 ++-------------------- intern/container/CTR_Map.h | 9 ++--- intern/container/CTR_TaggedIndex.h | 9 ++--- intern/container/CTR_TaggedSetOps.h | 9 ++--- intern/container/CTR_UHeap.h | 9 ++--- intern/container/Makefile | 9 ++--- intern/container/intern/CTR_List.cpp | 9 ++--- intern/container/intern/Makefile | 9 ++--- intern/decimation/CMakeLists.txt | 9 ++--- intern/decimation/Makefile | 9 ++--- intern/decimation/extern/LOD_decimation.h | 9 ++--- intern/decimation/intern/LOD_DecimationClass.h | 9 ++--- intern/decimation/intern/LOD_EdgeCollapser.cpp | 9 ++--- intern/decimation/intern/LOD_EdgeCollapser.h | 9 ++--- intern/decimation/intern/LOD_ExternBufferEditor.h | 9 ++--- .../decimation/intern/LOD_ExternNormalEditor.cpp | 9 ++--- intern/decimation/intern/LOD_ExternNormalEditor.h | 9 ++--- intern/decimation/intern/LOD_FaceNormalEditor.cpp | 9 ++--- intern/decimation/intern/LOD_FaceNormalEditor.h | 9 ++--- intern/decimation/intern/LOD_ManMesh2.cpp | 9 ++--- intern/decimation/intern/LOD_ManMesh2.h | 9 ++--- intern/decimation/intern/LOD_MeshBounds.h | 9 ++--- intern/decimation/intern/LOD_MeshException.h | 9 ++--- intern/decimation/intern/LOD_MeshPrimitives.cpp | 9 ++--- intern/decimation/intern/LOD_MeshPrimitives.h | 9 ++--- intern/decimation/intern/LOD_QSDecimator.cpp | 9 ++--- intern/decimation/intern/LOD_QSDecimator.h | 9 ++--- intern/decimation/intern/LOD_Quadric.h | 9 ++--- intern/decimation/intern/LOD_QuadricEditor.cpp | 9 ++--- intern/decimation/intern/LOD_QuadricEditor.h | 9 ++--- intern/decimation/intern/LOD_decimation.cpp | 9 ++--- intern/decimation/intern/Makefile | 9 ++--- intern/elbeem/CMakeLists.txt | 9 ++--- intern/elbeem/Makefile | 9 ++--- intern/elbeem/extern/LBM_fluidsim.h | 9 ++--- intern/elbeem/intern/Makefile | 9 ++--- intern/ghost/CMakeLists.txt | 9 ++--- intern/ghost/GHOST_C-api.h | 9 ++--- intern/ghost/GHOST_IEvent.h | 9 ++--- intern/ghost/GHOST_IEventConsumer.h | 9 ++--- intern/ghost/GHOST_ISystem.h | 9 ++--- intern/ghost/GHOST_ITimerTask.h | 9 ++--- intern/ghost/GHOST_IWindow.h | 9 ++--- intern/ghost/GHOST_Rect.h | 9 ++--- intern/ghost/GHOST_Types.h | 9 ++--- intern/ghost/Makefile | 9 ++--- intern/ghost/intern/GHOST_Buttons.cpp | 9 ++--- intern/ghost/intern/GHOST_Buttons.h | 9 ++--- intern/ghost/intern/GHOST_C-api.cpp | 9 ++--- .../ghost/intern/GHOST_CallbackEventConsumer.cpp | 9 ++--- intern/ghost/intern/GHOST_CallbackEventConsumer.h | 9 ++--- intern/ghost/intern/GHOST_Debug.h | 9 ++--- intern/ghost/intern/GHOST_DisplayManager.cpp | 9 ++--- intern/ghost/intern/GHOST_DisplayManager.h | 9 ++--- intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp | 9 ++--- intern/ghost/intern/GHOST_DisplayManagerCarbon.h | 9 ++--- intern/ghost/intern/GHOST_DisplayManagerWin32.cpp | 9 ++--- intern/ghost/intern/GHOST_DisplayManagerWin32.h | 9 ++--- intern/ghost/intern/GHOST_DisplayManagerX11.cpp | 9 ++--- intern/ghost/intern/GHOST_DisplayManagerX11.h | 9 ++--- intern/ghost/intern/GHOST_Event.h | 9 ++--- intern/ghost/intern/GHOST_EventButton.h | 9 ++--- intern/ghost/intern/GHOST_EventCursor.h | 9 ++--- intern/ghost/intern/GHOST_EventKey.h | 9 ++--- intern/ghost/intern/GHOST_EventManager.cpp | 9 ++--- intern/ghost/intern/GHOST_EventManager.h | 9 ++--- intern/ghost/intern/GHOST_EventPrinter.cpp | 9 ++--- intern/ghost/intern/GHOST_EventPrinter.h | 9 ++--- intern/ghost/intern/GHOST_EventWheel.h | 9 ++--- intern/ghost/intern/GHOST_ISystem.cpp | 9 ++--- intern/ghost/intern/GHOST_ModifierKeys.cpp | 9 ++--- intern/ghost/intern/GHOST_ModifierKeys.h | 9 ++--- intern/ghost/intern/GHOST_Rect.cpp | 9 ++--- intern/ghost/intern/GHOST_System.cpp | 9 ++--- intern/ghost/intern/GHOST_System.h | 9 ++--- intern/ghost/intern/GHOST_SystemCarbon.cpp | 9 ++--- intern/ghost/intern/GHOST_SystemCarbon.h | 9 ++--- intern/ghost/intern/GHOST_SystemWin32.cpp | 9 ++--- intern/ghost/intern/GHOST_SystemWin32.h | 9 ++--- intern/ghost/intern/GHOST_SystemX11.cpp | 9 ++--- intern/ghost/intern/GHOST_SystemX11.h | 9 ++--- intern/ghost/intern/GHOST_TimerManager.cpp | 9 ++--- intern/ghost/intern/GHOST_TimerManager.h | 9 ++--- intern/ghost/intern/GHOST_TimerTask.h | 9 ++--- intern/ghost/intern/GHOST_Window.cpp | 9 ++--- intern/ghost/intern/GHOST_Window.h | 9 ++--- intern/ghost/intern/GHOST_WindowCarbon.cpp | 9 ++--- intern/ghost/intern/GHOST_WindowCarbon.h | 9 ++--- intern/ghost/intern/GHOST_WindowManager.cpp | 9 ++--- intern/ghost/intern/GHOST_WindowManager.h | 9 ++--- intern/ghost/intern/GHOST_WindowWin32.cpp | 9 ++--- intern/ghost/intern/GHOST_WindowWin32.h | 9 ++--- intern/ghost/intern/GHOST_WindowX11.cpp | 9 ++--- intern/ghost/intern/GHOST_WindowX11.h | 9 ++--- intern/ghost/intern/Makefile | 9 ++--- intern/ghost/test/Makefile | 9 ++--- intern/ghost/test/gears/GHOST_C-Test.c | 9 ++--- intern/ghost/test/gears/GHOST_Test.cpp | 9 ++--- intern/ghost/test/gears/Makefile | 9 ++--- intern/ghost/test/multitest/Basic.c | 9 ++--- intern/ghost/test/multitest/Basic.h | 9 ++--- intern/ghost/test/multitest/EventToBuf.c | 9 ++--- intern/ghost/test/multitest/EventToBuf.h | 9 ++--- intern/ghost/test/multitest/GL.h | 9 ++--- intern/ghost/test/multitest/Makefile | 9 ++--- intern/ghost/test/multitest/MultiTest.c | 9 ++--- intern/ghost/test/multitest/ScrollBar.c | 9 ++--- intern/ghost/test/multitest/ScrollBar.h | 9 ++--- intern/ghost/test/multitest/Util.c | 9 ++--- intern/ghost/test/multitest/Util.h | 9 ++--- intern/ghost/test/multitest/WindowData.c | 9 ++--- intern/ghost/test/multitest/WindowData.h | 9 ++--- intern/guardedalloc/CMakeLists.txt | 9 ++--- intern/guardedalloc/MEM_guardedalloc.h | 9 ++--- intern/guardedalloc/Makefile | 9 ++--- intern/guardedalloc/intern/Makefile | 9 ++--- intern/guardedalloc/intern/mallocn.c | 9 ++--- intern/guardedalloc/test/Makefile | 9 ++--- intern/guardedalloc/test/simpletest/Makefile | 9 ++--- intern/guardedalloc/test/simpletest/memtest.c | 9 ++--- intern/iksolver/CMakeLists.txt | 9 ++--- intern/iksolver/Makefile | 9 ++--- intern/iksolver/extern/IK_solver.h | 9 ++--- intern/iksolver/intern/IK_QJacobian.cpp | 9 ++--- intern/iksolver/intern/IK_QJacobian.h | 9 ++--- intern/iksolver/intern/IK_QJacobianSolver.cpp | 9 ++--- intern/iksolver/intern/IK_QJacobianSolver.h | 9 ++--- intern/iksolver/intern/IK_QSegment.cpp | 9 ++--- intern/iksolver/intern/IK_QSegment.h | 9 ++--- intern/iksolver/intern/IK_QTask.cpp | 9 ++--- intern/iksolver/intern/IK_QTask.h | 9 ++--- intern/iksolver/intern/IK_Solver.cpp | 9 ++--- intern/iksolver/intern/MT_ExpMap.cpp | 9 ++--- intern/iksolver/intern/MT_ExpMap.h | 9 ++--- intern/iksolver/intern/Makefile | 9 ++--- intern/iksolver/test/Makefile | 9 ++--- intern/iksolver/test/ik_glut_test/Makefile | 9 ++--- .../test/ik_glut_test/common/GlutDrawer.cpp | 9 ++--- .../iksolver/test/ik_glut_test/common/GlutDrawer.h | 9 ++--- .../ik_glut_test/common/GlutKeyboardManager.cpp | 9 ++--- .../test/ik_glut_test/common/GlutKeyboardManager.h | 9 ++--- .../test/ik_glut_test/common/GlutMouseManager.cpp | 9 ++--- .../test/ik_glut_test/common/GlutMouseManager.h | 9 ++--- intern/iksolver/test/ik_glut_test/common/Makefile | 9 ++--- .../test/ik_glut_test/intern/ChainDrawer.h | 9 ++--- intern/iksolver/test/ik_glut_test/intern/Makefile | 9 ++--- .../test/ik_glut_test/intern/MyGlutKeyHandler.h | 9 ++--- .../test/ik_glut_test/intern/MyGlutMouseHandler.h | 9 ++--- intern/iksolver/test/ik_glut_test/intern/main.cpp | 40 ++-------------------- intern/memutil/CMakeLists.txt | 9 ++--- intern/memutil/MEM_Allocator.h | 9 ++--- intern/memutil/MEM_CacheLimiter.h | 9 ++--- intern/memutil/MEM_CacheLimiterC-Api.h | 9 ++--- intern/memutil/MEM_NonCopyable.h | 9 ++--- intern/memutil/MEM_RefCountPtr.h | 9 ++--- intern/memutil/MEM_RefCounted.h | 9 ++--- intern/memutil/MEM_RefCountedC-Api.h | 9 ++--- intern/memutil/MEM_SmartPtr.h | 9 ++--- intern/memutil/Makefile | 9 ++--- intern/memutil/intern/MEM_RefCountedC-Api.cpp | 9 ++--- intern/memutil/intern/Makefile | 9 ++--- intern/moto/CMakeLists.txt | 9 ++--- intern/moto/Makefile | 9 ++--- intern/moto/include/GEN_List.h | 40 ++-------------------- intern/moto/include/GEN_Map.h | 9 ++--- intern/moto/include/MT_CmMatrix4x4.h | 9 ++--- intern/moto/include/MT_Matrix3x3.h | 9 ++--- intern/moto/include/MT_Matrix4x4.h | 9 ++--- intern/moto/include/MT_MinMax.h | 9 ++--- intern/moto/include/MT_Optimize.h | 9 ++--- intern/moto/include/MT_Plane3.h | 9 ++--- intern/moto/include/MT_Point2.h | 9 ++--- intern/moto/include/MT_Point3.h | 9 ++--- intern/moto/include/MT_Quaternion.h | 9 ++--- intern/moto/include/MT_Scalar.h | 9 ++--- intern/moto/include/MT_Stream.h | 9 ++--- intern/moto/include/MT_Transform.h | 9 ++--- intern/moto/include/MT_Tuple2.h | 9 ++--- intern/moto/include/MT_Tuple3.h | 9 ++--- intern/moto/include/MT_Tuple4.h | 9 ++--- intern/moto/include/MT_Vector2.h | 9 ++--- intern/moto/include/MT_Vector3.h | 9 ++--- intern/moto/include/MT_Vector4.h | 9 ++--- intern/moto/include/MT_assert.h | 9 ++--- intern/moto/include/MT_random.h | 9 ++--- intern/moto/include/NM_Scalar.h | 9 ++--- intern/moto/intern/MT_Assert.cpp | 9 ++--- intern/moto/intern/MT_CmMatrix4x4.cpp | 40 ++-------------------- intern/moto/intern/MT_Matrix3x3.cpp | 9 ++--- intern/moto/intern/MT_Matrix4x4.cpp | 9 ++--- intern/moto/intern/MT_Plane3.cpp | 40 ++-------------------- intern/moto/intern/MT_Point3.cpp | 9 ++--- intern/moto/intern/MT_Quaternion.cpp | 9 ++--- intern/moto/intern/MT_Transform.cpp | 9 ++--- intern/moto/intern/MT_Vector2.cpp | 9 ++--- intern/moto/intern/MT_Vector3.cpp | 9 ++--- intern/moto/intern/MT_Vector4.cpp | 9 ++--- intern/moto/intern/MT_random.cpp | 9 ++--- intern/moto/intern/Makefile | 9 ++--- intern/opennl/CMakeLists.txt | 9 ++--- intern/opennl/Makefile | 9 ++--- intern/opennl/intern/Makefile | 9 ++--- intern/opennl/superlu/Makefile | 9 ++--- intern/string/CMakeLists.txt | 9 ++--- intern/string/Makefile | 9 ++--- intern/string/STR_HashedString.h | 9 ++--- intern/string/STR_String.h | 9 ++--- intern/string/intern/Makefile | 9 ++--- intern/string/intern/STR_String.cpp | 9 ++--- 336 files changed, 1008 insertions(+), 2171 deletions(-) (limited to 'intern') diff --git a/intern/CMakeLists.txt b/intern/CMakeLists.txt index aa5b1a8531c..81ef8c121d1 100644 --- a/intern/CMakeLists.txt +++ b/intern/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SUBDIRS(SoundSystem string ghost guardedalloc bmfont moto container memutil decimation iksolver boolop opennl) diff --git a/intern/Makefile b/intern/Makefile index 7eaabd5b6bb..357e28309e3 100644 --- a/intern/Makefile +++ b/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # Bounces make to subdirectories. Also installs after succesful all target. SOURCEDIR = intern diff --git a/intern/SoundSystem/CMakeLists.txt b/intern/SoundSystem/CMakeLists.txt index 428b8db01ee..9a370af2268 100644 --- a/intern/SoundSystem/CMakeLists.txt +++ b/intern/SoundSystem/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC . intern ../moto/include ../string dummy openal sdl) diff --git a/intern/SoundSystem/Makefile b/intern/SoundSystem/Makefile index 757301e4a35..d00339f351c 100644 --- a/intern/SoundSystem/Makefile +++ b/intern/SoundSystem/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # # diff --git a/intern/SoundSystem/SND_C-api.h b/intern/SoundSystem/SND_C-api.h index 03470f7e998..f8e439a9c26 100644 --- a/intern/SoundSystem/SND_C-api.h +++ b/intern/SoundSystem/SND_C-api.h @@ -1,15 +1,12 @@ /** * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef SND_BLENDER_H #define SND_BLENDER_H diff --git a/intern/SoundSystem/SND_CDObject.h b/intern/SoundSystem/SND_CDObject.h index 5af2005d34a..c79f62d9862 100644 --- a/intern/SoundSystem/SND_CDObject.h +++ b/intern/SoundSystem/SND_CDObject.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __SND_CDOBJECT_H diff --git a/intern/SoundSystem/SND_DependKludge.h b/intern/SoundSystem/SND_DependKludge.h index 71514a87ca2..1a95f977abe 100644 --- a/intern/SoundSystem/SND_DependKludge.h +++ b/intern/SoundSystem/SND_DependKludge.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef HAVE_CONFIG_H diff --git a/intern/SoundSystem/SND_DeviceManager.h b/intern/SoundSystem/SND_DeviceManager.h index b0b2a28ffb8..708db030519 100644 --- a/intern/SoundSystem/SND_DeviceManager.h +++ b/intern/SoundSystem/SND_DeviceManager.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __SND_DEVICEMANAGER_H diff --git a/intern/SoundSystem/SND_IAudioDevice.h b/intern/SoundSystem/SND_IAudioDevice.h index 73d52e13c05..d6b3936e6ef 100644 --- a/intern/SoundSystem/SND_IAudioDevice.h +++ b/intern/SoundSystem/SND_IAudioDevice.h @@ -1,15 +1,12 @@ /** * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef SND_IAUDIODEVICE #define SND_IAUDIODEVICE diff --git a/intern/SoundSystem/SND_Object.h b/intern/SoundSystem/SND_Object.h index b67ae3ee396..f23827974e3 100644 --- a/intern/SoundSystem/SND_Object.h +++ b/intern/SoundSystem/SND_Object.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __SND_OBJECT_H diff --git a/intern/SoundSystem/SND_Scene.h b/intern/SoundSystem/SND_Scene.h index 49cb40de714..bb3ff932bce 100644 --- a/intern/SoundSystem/SND_Scene.h +++ b/intern/SoundSystem/SND_Scene.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef WIN32 diff --git a/intern/SoundSystem/SND_SoundListener.h b/intern/SoundSystem/SND_SoundListener.h index ce8315e6375..2f6a6e8cddd 100644 --- a/intern/SoundSystem/SND_SoundListener.h +++ b/intern/SoundSystem/SND_SoundListener.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __SND_SOUNDLISTENER_H diff --git a/intern/SoundSystem/SND_SoundObject.h b/intern/SoundSystem/SND_SoundObject.h index a6a98fba220..7bd43fb4e66 100644 --- a/intern/SoundSystem/SND_SoundObject.h +++ b/intern/SoundSystem/SND_SoundObject.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __SND_SOUNDOBJECT_H diff --git a/intern/SoundSystem/SND_Utils.h b/intern/SoundSystem/SND_Utils.h index de36065c48f..c54aa434eec 100644 --- a/intern/SoundSystem/SND_Utils.h +++ b/intern/SoundSystem/SND_Utils.h @@ -1,15 +1,12 @@ /** * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef SND_UTILS_H #define SND_UTILS_H diff --git a/intern/SoundSystem/SND_WaveCache.h b/intern/SoundSystem/SND_WaveCache.h index 1a6445be966..2c457797768 100644 --- a/intern/SoundSystem/SND_WaveCache.h +++ b/intern/SoundSystem/SND_WaveCache.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef WIN32 diff --git a/intern/SoundSystem/SND_WaveSlot.h b/intern/SoundSystem/SND_WaveSlot.h index bc92829d3d3..75cddfa36d8 100644 --- a/intern/SoundSystem/SND_WaveSlot.h +++ b/intern/SoundSystem/SND_WaveSlot.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __SND_WAVESLOT_H diff --git a/intern/SoundSystem/SND_test/Makefile b/intern/SoundSystem/SND_test/Makefile index 2fc531ae37e..279eeace0d8 100644 --- a/intern/SoundSystem/SND_test/Makefile +++ b/intern/SoundSystem/SND_test/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # # diff --git a/intern/SoundSystem/SND_test/SND_test.c b/intern/SoundSystem/SND_test/SND_test.c index 99de147c8a0..0d19dc2e131 100644 --- a/intern/SoundSystem/SND_test/SND_test.c +++ b/intern/SoundSystem/SND_test/SND_test.c @@ -6,15 +6,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -32,7 +29,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "SND_C-api.h" diff --git a/intern/SoundSystem/SoundDefines.h b/intern/SoundSystem/SoundDefines.h index f7a3a3c6619..5d425a8dc94 100644 --- a/intern/SoundSystem/SoundDefines.h +++ b/intern/SoundSystem/SoundDefines.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __SOUNDDEFINES_H diff --git a/intern/SoundSystem/dummy/Makefile b/intern/SoundSystem/dummy/Makefile index 5d23d1a8a6a..829135dde98 100644 --- a/intern/SoundSystem/dummy/Makefile +++ b/intern/SoundSystem/dummy/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # # diff --git a/intern/SoundSystem/dummy/SND_DummyDevice.cpp b/intern/SoundSystem/dummy/SND_DummyDevice.cpp index 7b99ec461df..3e5874f02ca 100644 --- a/intern/SoundSystem/dummy/SND_DummyDevice.cpp +++ b/intern/SoundSystem/dummy/SND_DummyDevice.cpp @@ -1,15 +1,12 @@ /* * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** * SND_FmodDevice derived from SND_IAudioDevice */ diff --git a/intern/SoundSystem/dummy/SND_DummyDevice.h b/intern/SoundSystem/dummy/SND_DummyDevice.h index 6dff52d40d5..988f731d1bf 100644 --- a/intern/SoundSystem/dummy/SND_DummyDevice.h +++ b/intern/SoundSystem/dummy/SND_DummyDevice.h @@ -1,15 +1,12 @@ /** * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef SND_DUMMYDEVICE #define SND_DUMMYDEVICE diff --git a/intern/SoundSystem/fmod/Makefile b/intern/SoundSystem/fmod/Makefile index d2810e8fa2f..47bc0348fe2 100644 --- a/intern/SoundSystem/fmod/Makefile +++ b/intern/SoundSystem/fmod/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # # diff --git a/intern/SoundSystem/fmod/SND_FmodDevice.cpp b/intern/SoundSystem/fmod/SND_FmodDevice.cpp index 06bcbc2f393..cc252954fea 100644 --- a/intern/SoundSystem/fmod/SND_FmodDevice.cpp +++ b/intern/SoundSystem/fmod/SND_FmodDevice.cpp @@ -1,15 +1,12 @@ /* * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** * SND_FmodDevice derived from SND_IAudioDevice */ diff --git a/intern/SoundSystem/fmod/SND_FmodDevice.h b/intern/SoundSystem/fmod/SND_FmodDevice.h index d44cfb9d937..294ee4e3a72 100644 --- a/intern/SoundSystem/fmod/SND_FmodDevice.h +++ b/intern/SoundSystem/fmod/SND_FmodDevice.h @@ -1,15 +1,12 @@ /** * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef SND_FMODDEVICE #define SND_FMODDEVICE diff --git a/intern/SoundSystem/intern/Makefile b/intern/SoundSystem/intern/Makefile index cf793bdba25..c52be01f69f 100644 --- a/intern/SoundSystem/intern/Makefile +++ b/intern/SoundSystem/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # # diff --git a/intern/SoundSystem/intern/SND_AudioDevice.cpp b/intern/SoundSystem/intern/SND_AudioDevice.cpp index 828edaed4b4..4a5c0e2c498 100644 --- a/intern/SoundSystem/intern/SND_AudioDevice.cpp +++ b/intern/SoundSystem/intern/SND_AudioDevice.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "SND_AudioDevice.h" diff --git a/intern/SoundSystem/intern/SND_AudioDevice.h b/intern/SoundSystem/intern/SND_AudioDevice.h index 6edd52955ae..54e8feea90e 100644 --- a/intern/SoundSystem/intern/SND_AudioDevice.h +++ b/intern/SoundSystem/intern/SND_AudioDevice.h @@ -1,15 +1,12 @@ /** * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef SND_AUDIODEVICE #define SND_AUDIODEVICE diff --git a/intern/SoundSystem/intern/SND_C-api.cpp b/intern/SoundSystem/intern/SND_C-api.cpp index 1b03d66562c..09846269dcc 100644 --- a/intern/SoundSystem/intern/SND_C-api.cpp +++ b/intern/SoundSystem/intern/SND_C-api.cpp @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/SoundSystem/intern/SND_CDObject.cpp b/intern/SoundSystem/intern/SND_CDObject.cpp index e4fcdfaceeb..089e0d554e4 100644 --- a/intern/SoundSystem/intern/SND_CDObject.cpp +++ b/intern/SoundSystem/intern/SND_CDObject.cpp @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "SND_CDObject.h" diff --git a/intern/SoundSystem/intern/SND_DeviceManager.cpp b/intern/SoundSystem/intern/SND_DeviceManager.cpp index 37487686d71..215c0f5b6fa 100644 --- a/intern/SoundSystem/intern/SND_DeviceManager.cpp +++ b/intern/SoundSystem/intern/SND_DeviceManager.cpp @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/SoundSystem/intern/SND_IdObject.cpp b/intern/SoundSystem/intern/SND_IdObject.cpp index eac95de64a4..b261442db0a 100644 --- a/intern/SoundSystem/intern/SND_IdObject.cpp +++ b/intern/SoundSystem/intern/SND_IdObject.cpp @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "SND_IdObject.h" diff --git a/intern/SoundSystem/intern/SND_IdObject.h b/intern/SoundSystem/intern/SND_IdObject.h index fc9608b97bf..86611b026f0 100644 --- a/intern/SoundSystem/intern/SND_IdObject.h +++ b/intern/SoundSystem/intern/SND_IdObject.h @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __SND_IDOBJECT_H diff --git a/intern/SoundSystem/intern/SND_Scene.cpp b/intern/SoundSystem/intern/SND_Scene.cpp index ffb1cd44108..bbf971ddc87 100644 --- a/intern/SoundSystem/intern/SND_Scene.cpp +++ b/intern/SoundSystem/intern/SND_Scene.cpp @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/SoundSystem/intern/SND_SoundListener.cpp b/intern/SoundSystem/intern/SND_SoundListener.cpp index 0209ac5683a..26163e87765 100644 --- a/intern/SoundSystem/intern/SND_SoundListener.cpp +++ b/intern/SoundSystem/intern/SND_SoundListener.cpp @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "SND_SoundListener.h" diff --git a/intern/SoundSystem/intern/SND_SoundObject.cpp b/intern/SoundSystem/intern/SND_SoundObject.cpp index e835b012ac1..e514a186e5e 100644 --- a/intern/SoundSystem/intern/SND_SoundObject.cpp +++ b/intern/SoundSystem/intern/SND_SoundObject.cpp @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "SND_SoundObject.h" diff --git a/intern/SoundSystem/intern/SND_Utils.cpp b/intern/SoundSystem/intern/SND_Utils.cpp index 0880576c292..7d441964b24 100644 --- a/intern/SoundSystem/intern/SND_Utils.cpp +++ b/intern/SoundSystem/intern/SND_Utils.cpp @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "SND_Utils.h" diff --git a/intern/SoundSystem/intern/SND_WaveCache.cpp b/intern/SoundSystem/intern/SND_WaveCache.cpp index e9868f77f57..a678bd554bb 100644 --- a/intern/SoundSystem/intern/SND_WaveCache.cpp +++ b/intern/SoundSystem/intern/SND_WaveCache.cpp @@ -5,15 +5,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -31,7 +28,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/SoundSystem/intern/SND_WaveSlot.cpp b/intern/SoundSystem/intern/SND_WaveSlot.cpp index 6c74e326743..43b2bb55892 100644 --- a/intern/SoundSystem/intern/SND_WaveSlot.cpp +++ b/intern/SoundSystem/intern/SND_WaveSlot.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "SND_WaveSlot.h" diff --git a/intern/SoundSystem/openal/Makefile b/intern/SoundSystem/openal/Makefile index 84ae9b007b6..b28ab628d4c 100644 --- a/intern/SoundSystem/openal/Makefile +++ b/intern/SoundSystem/openal/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # # diff --git a/intern/SoundSystem/openal/SND_OpenALDevice.cpp b/intern/SoundSystem/openal/SND_OpenALDevice.cpp index bb0204af53b..82ed1c8a808 100644 --- a/intern/SoundSystem/openal/SND_OpenALDevice.cpp +++ b/intern/SoundSystem/openal/SND_OpenALDevice.cpp @@ -1,15 +1,12 @@ /* * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** * SND_OpenALDevice derived from SND_IAudioDevice */ diff --git a/intern/SoundSystem/openal/SND_OpenALDevice.h b/intern/SoundSystem/openal/SND_OpenALDevice.h index e54c0443462..b8c64762a56 100644 --- a/intern/SoundSystem/openal/SND_OpenALDevice.h +++ b/intern/SoundSystem/openal/SND_OpenALDevice.h @@ -1,15 +1,12 @@ /** * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef SND_OPENALDEVICE #define SND_OPENALDEVICE diff --git a/intern/SoundSystem/openal/pthread_cancel.cpp b/intern/SoundSystem/openal/pthread_cancel.cpp index 7651417db0b..bb36d1dd136 100644 --- a/intern/SoundSystem/openal/pthread_cancel.cpp +++ b/intern/SoundSystem/openal/pthread_cancel.cpp @@ -1,14 +1,11 @@ /* $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** * FreeBSD 3.4 does not yet have pthread_cancel (3.5 and above do) */ diff --git a/intern/SoundSystem/sdl/Makefile b/intern/SoundSystem/sdl/Makefile index 0a1632c4a41..669d7110797 100644 --- a/intern/SoundSystem/sdl/Makefile +++ b/intern/SoundSystem/sdl/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # # diff --git a/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp b/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp index e2419b47269..8bb6c642b11 100644 --- a/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp +++ b/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp @@ -1,15 +1,12 @@ /* * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** * SND_SDLCDDevice */ diff --git a/intern/SoundSystem/sdl/SND_SDLCDDevice.h b/intern/SoundSystem/sdl/SND_SDLCDDevice.h index 829f361ea22..15cb1975d74 100644 --- a/intern/SoundSystem/sdl/SND_SDLCDDevice.h +++ b/intern/SoundSystem/sdl/SND_SDLCDDevice.h @@ -1,15 +1,12 @@ /** * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef SND_SDLCDDEVICE #define SND_SDLCDDEVICE diff --git a/intern/bmfont/BMF_Api.h b/intern/bmfont/BMF_Api.h index 4465242e9fa..252f60623a7 100644 --- a/intern/bmfont/BMF_Api.h +++ b/intern/bmfont/BMF_Api.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/bmfont/BMF_Fonts.h b/intern/bmfont/BMF_Fonts.h index bf7c370e47e..00a902573fb 100644 --- a/intern/bmfont/BMF_Fonts.h +++ b/intern/bmfont/BMF_Fonts.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/bmfont/BMF_Settings.h b/intern/bmfont/BMF_Settings.h index 247f9e474fc..b599c97d6ee 100644 --- a/intern/bmfont/BMF_Settings.h +++ b/intern/bmfont/BMF_Settings.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/bmfont/CMakeLists.txt b/intern/bmfont/CMakeLists.txt index e3b8242ceac..3ae636a6097 100644 --- a/intern/bmfont/CMakeLists.txt +++ b/intern/bmfont/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC . intern) diff --git a/intern/bmfont/Makefile b/intern/bmfont/Makefile index 9c0193fee1b..bc42f52a1fb 100644 --- a/intern/bmfont/Makefile +++ b/intern/bmfont/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # bmfont main makefile. # diff --git a/intern/bmfont/intern/BMF_Api.cpp b/intern/bmfont/intern/BMF_Api.cpp index 24e053515fb..1699393e53d 100644 --- a/intern/bmfont/intern/BMF_Api.cpp +++ b/intern/bmfont/intern/BMF_Api.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/bmfont/intern/BMF_BitmapFont.cpp b/intern/bmfont/intern/BMF_BitmapFont.cpp index afdcf7fbfbb..0111e9c3f93 100644 --- a/intern/bmfont/intern/BMF_BitmapFont.cpp +++ b/intern/bmfont/intern/BMF_BitmapFont.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/bmfont/intern/BMF_BitmapFont.h b/intern/bmfont/intern/BMF_BitmapFont.h index f8d3d5370dd..ed060818f71 100644 --- a/intern/bmfont/intern/BMF_BitmapFont.h +++ b/intern/bmfont/intern/BMF_BitmapFont.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/bmfont/intern/BMF_FontData.h b/intern/bmfont/intern/BMF_FontData.h index 512bdf1a53d..603d291d47d 100644 --- a/intern/bmfont/intern/BMF_FontData.h +++ b/intern/bmfont/intern/BMF_FontData.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/bmfont/intern/BMF_font_helv10.cpp b/intern/bmfont/intern/BMF_font_helv10.cpp index 636ac78c5d6..2430e9f6d81 100644 --- a/intern/bmfont/intern/BMF_font_helv10.cpp +++ b/intern/bmfont/intern/BMF_font_helv10.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bmfont/intern/BMF_font_helv12.cpp b/intern/bmfont/intern/BMF_font_helv12.cpp index 813d22475eb..29b08b659ee 100644 --- a/intern/bmfont/intern/BMF_font_helv12.cpp +++ b/intern/bmfont/intern/BMF_font_helv12.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bmfont/intern/BMF_font_helvb10.cpp b/intern/bmfont/intern/BMF_font_helvb10.cpp index 66583767ffb..cdd3656c5c0 100644 --- a/intern/bmfont/intern/BMF_font_helvb10.cpp +++ b/intern/bmfont/intern/BMF_font_helvb10.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bmfont/intern/BMF_font_helvb12.cpp b/intern/bmfont/intern/BMF_font_helvb12.cpp index 69230d48ae8..8b56bdceee7 100644 --- a/intern/bmfont/intern/BMF_font_helvb12.cpp +++ b/intern/bmfont/intern/BMF_font_helvb12.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bmfont/intern/BMF_font_helvb14.cpp b/intern/bmfont/intern/BMF_font_helvb14.cpp index e793295f295..c6d3e0ec701 100644 --- a/intern/bmfont/intern/BMF_font_helvb14.cpp +++ b/intern/bmfont/intern/BMF_font_helvb14.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bmfont/intern/BMF_font_helvb8.cpp b/intern/bmfont/intern/BMF_font_helvb8.cpp index 79651b06519..fb56049c8fe 100644 --- a/intern/bmfont/intern/BMF_font_helvb8.cpp +++ b/intern/bmfont/intern/BMF_font_helvb8.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bmfont/intern/BMF_font_scr12.cpp b/intern/bmfont/intern/BMF_font_scr12.cpp index bcdb87fcc0b..be0be544474 100644 --- a/intern/bmfont/intern/BMF_font_scr12.cpp +++ b/intern/bmfont/intern/BMF_font_scr12.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bmfont/intern/BMF_font_scr14.cpp b/intern/bmfont/intern/BMF_font_scr14.cpp index 6a3ee9dd710..596442885e1 100644 --- a/intern/bmfont/intern/BMF_font_scr14.cpp +++ b/intern/bmfont/intern/BMF_font_scr14.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bmfont/intern/BMF_font_scr15.cpp b/intern/bmfont/intern/BMF_font_scr15.cpp index c130fadbf52..8490e999bdb 100644 --- a/intern/bmfont/intern/BMF_font_scr15.cpp +++ b/intern/bmfont/intern/BMF_font_scr15.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bmfont/intern/Makefile b/intern/bmfont/intern/Makefile index cd02eaa31bd..f420cfcf1e6 100644 --- a/intern/bmfont/intern/Makefile +++ b/intern/bmfont/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # bmfont intern Makefile # diff --git a/intern/bmfont/test/Makefile b/intern/bmfont/test/Makefile index f7e0f927722..135db74f38b 100644 --- a/intern/bmfont/test/Makefile +++ b/intern/bmfont/test/Makefile @@ -1,12 +1,9 @@ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -24,7 +21,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # Test the bmfont module # diff --git a/intern/bmfont/test/simpletest/BMF_Test.cpp b/intern/bmfont/test/simpletest/BMF_Test.cpp index 00f7bc30f45..93a55042a4f 100644 --- a/intern/bmfont/test/simpletest/BMF_Test.cpp +++ b/intern/bmfont/test/simpletest/BMF_Test.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/bmfont/test/simpletest/Makefile b/intern/bmfont/test/simpletest/Makefile index 190a39f0e9b..5c5e32f2ed2 100644 --- a/intern/bmfont/test/simpletest/Makefile +++ b/intern/bmfont/test/simpletest/Makefile @@ -1,12 +1,9 @@ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -24,7 +21,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # Test the bmfont module # diff --git a/intern/boolop/CMakeLists.txt b/intern/boolop/CMakeLists.txt index 0db6675237b..346e76f28fd 100644 --- a/intern/boolop/CMakeLists.txt +++ b/intern/boolop/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC . intern extern ../moto/include ../container ../memutil ../../source/blender/makesdna ../guardedalloc ../../source/blender/blenlib) diff --git a/intern/boolop/Makefile b/intern/boolop/Makefile index 85e6754132e..4058c4ca7c1 100644 --- a/intern/boolop/Makefile +++ b/intern/boolop/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # bsp main makefile. # diff --git a/intern/boolop/extern/BOP_Interface.h b/intern/boolop/extern/BOP_Interface.h index 7fe7ae226fd..bdd1269abca 100644 --- a/intern/boolop/extern/BOP_Interface.h +++ b/intern/boolop/extern/BOP_Interface.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_INTERFACE_H diff --git a/intern/boolop/intern/BOP_BBox.cpp b/intern/boolop/intern/BOP_BBox.cpp index 767847e1e09..c988fbc8024 100644 --- a/intern/boolop/intern/BOP_BBox.cpp +++ b/intern/boolop/intern/BOP_BBox.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_BBox.h" diff --git a/intern/boolop/intern/BOP_BBox.h b/intern/boolop/intern/BOP_BBox.h index 473a9828a1a..0ecae1d14b5 100644 --- a/intern/boolop/intern/BOP_BBox.h +++ b/intern/boolop/intern/BOP_BBox.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_BBOX_H diff --git a/intern/boolop/intern/BOP_BSPNode.cpp b/intern/boolop/intern/BOP_BSPNode.cpp index 68a20d7a5a4..80a1d5c9d7e 100644 --- a/intern/boolop/intern/BOP_BSPNode.cpp +++ b/intern/boolop/intern/BOP_BSPNode.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_MathUtils.h" diff --git a/intern/boolop/intern/BOP_BSPNode.h b/intern/boolop/intern/BOP_BSPNode.h index 39a84b94dec..688b57d948f 100644 --- a/intern/boolop/intern/BOP_BSPNode.h +++ b/intern/boolop/intern/BOP_BSPNode.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_BSPNODE_H diff --git a/intern/boolop/intern/BOP_BSPTree.cpp b/intern/boolop/intern/BOP_BSPTree.cpp index 3ae375294cd..734b4ab7660 100644 --- a/intern/boolop/intern/BOP_BSPTree.cpp +++ b/intern/boolop/intern/BOP_BSPTree.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_BSPTree.h" diff --git a/intern/boolop/intern/BOP_BSPTree.h b/intern/boolop/intern/BOP_BSPTree.h index 412d5a40753..1ea2486653d 100644 --- a/intern/boolop/intern/BOP_BSPTree.h +++ b/intern/boolop/intern/BOP_BSPTree.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_BSPTREE_H diff --git a/intern/boolop/intern/BOP_Chrono.h b/intern/boolop/intern/BOP_Chrono.h index 5ce64f7a57c..a2a230bf70d 100644 --- a/intern/boolop/intern/BOP_Chrono.h +++ b/intern/boolop/intern/BOP_Chrono.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_CHRONO_H diff --git a/intern/boolop/intern/BOP_Edge.cpp b/intern/boolop/intern/BOP_Edge.cpp index 31411133878..ac302b530df 100644 --- a/intern/boolop/intern/BOP_Edge.cpp +++ b/intern/boolop/intern/BOP_Edge.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_Edge.h" diff --git a/intern/boolop/intern/BOP_Edge.h b/intern/boolop/intern/BOP_Edge.h index abf5dd0a8c8..13426f6e63c 100644 --- a/intern/boolop/intern/BOP_Edge.h +++ b/intern/boolop/intern/BOP_Edge.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_EDGE_H diff --git a/intern/boolop/intern/BOP_Face.cpp b/intern/boolop/intern/BOP_Face.cpp index ebe34237d4f..12c94624517 100644 --- a/intern/boolop/intern/BOP_Face.cpp +++ b/intern/boolop/intern/BOP_Face.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_Face.h" diff --git a/intern/boolop/intern/BOP_Face.h b/intern/boolop/intern/BOP_Face.h index 1d854ec00ca..e16425f78b3 100644 --- a/intern/boolop/intern/BOP_Face.h +++ b/intern/boolop/intern/BOP_Face.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_FACE_H diff --git a/intern/boolop/intern/BOP_Face2Face.cpp b/intern/boolop/intern/BOP_Face2Face.cpp index ef67e5dd24b..38841e34567 100644 --- a/intern/boolop/intern/BOP_Face2Face.cpp +++ b/intern/boolop/intern/BOP_Face2Face.cpp @@ -2,15 +2,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -28,7 +25,7 @@ * * Contributor(s): Marc Freixas, Ken Hughes * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_Face2Face.h" diff --git a/intern/boolop/intern/BOP_Face2Face.h b/intern/boolop/intern/BOP_Face2Face.h index 09ed4edd076..66b532700fd 100644 --- a/intern/boolop/intern/BOP_Face2Face.h +++ b/intern/boolop/intern/BOP_Face2Face.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_FACE2FACE_H diff --git a/intern/boolop/intern/BOP_Indexs.h b/intern/boolop/intern/BOP_Indexs.h index c5546e73252..f86916cbf47 100644 --- a/intern/boolop/intern/BOP_Indexs.h +++ b/intern/boolop/intern/BOP_Indexs.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_Indexs_H diff --git a/intern/boolop/intern/BOP_Interface.cpp b/intern/boolop/intern/BOP_Interface.cpp index 3c61fd6c7b8..2a198103931 100644 --- a/intern/boolop/intern/BOP_Interface.cpp +++ b/intern/boolop/intern/BOP_Interface.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include diff --git a/intern/boolop/intern/BOP_MathUtils.cpp b/intern/boolop/intern/BOP_MathUtils.cpp index e0d96b465ee..8c7d10f1d23 100644 --- a/intern/boolop/intern/BOP_MathUtils.cpp +++ b/intern/boolop/intern/BOP_MathUtils.cpp @@ -2,15 +2,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -28,7 +25,7 @@ * * Contributor(s): Marc Freixas, Ken Hughes * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_MathUtils.h" diff --git a/intern/boolop/intern/BOP_MathUtils.h b/intern/boolop/intern/BOP_MathUtils.h index 3cff2d6a23b..ee2dfbf37fc 100644 --- a/intern/boolop/intern/BOP_MathUtils.h +++ b/intern/boolop/intern/BOP_MathUtils.h @@ -2,15 +2,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -28,7 +25,7 @@ * * Contributor(s): Marc Freixas, Ken Hughes * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_MATHUTILS_H diff --git a/intern/boolop/intern/BOP_Merge.cpp b/intern/boolop/intern/BOP_Merge.cpp index c2b1a2db2b7..1e4139ab971 100644 --- a/intern/boolop/intern/BOP_Merge.cpp +++ b/intern/boolop/intern/BOP_Merge.cpp @@ -2,15 +2,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -28,7 +25,7 @@ * * Contributor(s): Marc Freixas, Ken Hughes * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_Merge.h" diff --git a/intern/boolop/intern/BOP_Merge.h b/intern/boolop/intern/BOP_Merge.h index 2ccce8e137b..88999b2e734 100644 --- a/intern/boolop/intern/BOP_Merge.h +++ b/intern/boolop/intern/BOP_Merge.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_MERGE_H diff --git a/intern/boolop/intern/BOP_Mesh.cpp b/intern/boolop/intern/BOP_Mesh.cpp index 0b70cc61533..5659cd62a3f 100644 --- a/intern/boolop/intern/BOP_Mesh.cpp +++ b/intern/boolop/intern/BOP_Mesh.cpp @@ -2,15 +2,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -28,7 +25,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_Mesh.h" diff --git a/intern/boolop/intern/BOP_Mesh.h b/intern/boolop/intern/BOP_Mesh.h index f671b9a96c9..9abff52545f 100644 --- a/intern/boolop/intern/BOP_Mesh.h +++ b/intern/boolop/intern/BOP_Mesh.h @@ -9,15 +9,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -35,7 +32,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_MESH_H diff --git a/intern/boolop/intern/BOP_Segment.cpp b/intern/boolop/intern/BOP_Segment.cpp index 2a81660c4ff..ed0cd6a0548 100644 --- a/intern/boolop/intern/BOP_Segment.cpp +++ b/intern/boolop/intern/BOP_Segment.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_Segment.h" diff --git a/intern/boolop/intern/BOP_Segment.h b/intern/boolop/intern/BOP_Segment.h index caa6157346c..4c8f82d8869 100644 --- a/intern/boolop/intern/BOP_Segment.h +++ b/intern/boolop/intern/BOP_Segment.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_SEGMENT_H diff --git a/intern/boolop/intern/BOP_Splitter.cpp b/intern/boolop/intern/BOP_Splitter.cpp index 07f1f4d6c96..7dd3884e9de 100644 --- a/intern/boolop/intern/BOP_Splitter.cpp +++ b/intern/boolop/intern/BOP_Splitter.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_Splitter.h" diff --git a/intern/boolop/intern/BOP_Splitter.h b/intern/boolop/intern/BOP_Splitter.h index 02cbdd2aa72..59b8251b07a 100644 --- a/intern/boolop/intern/BOP_Splitter.h +++ b/intern/boolop/intern/BOP_Splitter.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_SPLITTER_H diff --git a/intern/boolop/intern/BOP_Tag.cpp b/intern/boolop/intern/BOP_Tag.cpp index 6a8832870fa..92382caf70f 100644 --- a/intern/boolop/intern/BOP_Tag.cpp +++ b/intern/boolop/intern/BOP_Tag.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_Tag.h" diff --git a/intern/boolop/intern/BOP_Tag.h b/intern/boolop/intern/BOP_Tag.h index 2b6ff93b679..705f4885866 100644 --- a/intern/boolop/intern/BOP_Tag.h +++ b/intern/boolop/intern/BOP_Tag.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include diff --git a/intern/boolop/intern/BOP_Triangulator.cpp b/intern/boolop/intern/BOP_Triangulator.cpp index fd7b3154195..6b00e878e57 100644 --- a/intern/boolop/intern/BOP_Triangulator.cpp +++ b/intern/boolop/intern/BOP_Triangulator.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_Triangulator.h" diff --git a/intern/boolop/intern/BOP_Triangulator.h b/intern/boolop/intern/BOP_Triangulator.h index 12223e1ea1f..43b6c102262 100644 --- a/intern/boolop/intern/BOP_Triangulator.h +++ b/intern/boolop/intern/BOP_Triangulator.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_TRIANGULATOR_H diff --git a/intern/boolop/intern/BOP_Vertex.cpp b/intern/boolop/intern/BOP_Vertex.cpp index c039df5775d..a429c26d204 100644 --- a/intern/boolop/intern/BOP_Vertex.cpp +++ b/intern/boolop/intern/BOP_Vertex.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "BOP_Vertex.h" diff --git a/intern/boolop/intern/BOP_Vertex.h b/intern/boolop/intern/BOP_Vertex.h index a781407af34..3a9895df6d3 100644 --- a/intern/boolop/intern/BOP_Vertex.h +++ b/intern/boolop/intern/BOP_Vertex.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BOP_VERTEX_H diff --git a/intern/boolop/intern/Makefile b/intern/boolop/intern/Makefile index 0838f44ca8a..6fc8d448a10 100644 --- a/intern/boolop/intern/Makefile +++ b/intern/boolop/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # string intern Makefile # diff --git a/intern/bsp/CMakeLists.txt b/intern/bsp/CMakeLists.txt index b6fbb8e4812..9980f007db8 100644 --- a/intern/bsp/CMakeLists.txt +++ b/intern/bsp/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC intern ../container ../moto/include ../memutil) diff --git a/intern/bsp/Makefile b/intern/bsp/Makefile index 818e4d69606..fd106acab83 100644 --- a/intern/bsp/Makefile +++ b/intern/bsp/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # bsp main makefile. # diff --git a/intern/bsp/extern/CSG_BooleanOps.h b/intern/bsp/extern/CSG_BooleanOps.h index 1e862568cda..635e0a42358 100644 --- a/intern/bsp/extern/CSG_BooleanOps.h +++ b/intern/bsp/extern/CSG_BooleanOps.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef CSG_BOOLEANOPS_H diff --git a/intern/bsp/intern/BSP_CSGException.h b/intern/bsp/intern/BSP_CSGException.h index c2d79630be2..f0e5aa2fa9f 100644 --- a/intern/bsp/intern/BSP_CSGException.h +++ b/intern/bsp/intern/BSP_CSGException.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_CSGException_h diff --git a/intern/bsp/intern/BSP_CSGMesh.cpp b/intern/bsp/intern/BSP_CSGMesh.cpp index 5da39c8d551..553f39a4642 100644 --- a/intern/bsp/intern/BSP_CSGMesh.cpp +++ b/intern/bsp/intern/BSP_CSGMesh.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ diff --git a/intern/bsp/intern/BSP_CSGMesh.h b/intern/bsp/intern/BSP_CSGMesh.h index 47903520157..64ecafc2fc0 100644 --- a/intern/bsp/intern/BSP_CSGMesh.h +++ b/intern/bsp/intern/BSP_CSGMesh.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_BSP_CSGMesh_h diff --git a/intern/bsp/intern/BSP_CSGMesh_CFIterator.h b/intern/bsp/intern/BSP_CSGMesh_CFIterator.h index 010f62159a5..83921a30e43 100644 --- a/intern/bsp/intern/BSP_CSGMesh_CFIterator.h +++ b/intern/bsp/intern/BSP_CSGMesh_CFIterator.h @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BSP_CSGMesh_CFIterator_h diff --git a/intern/bsp/intern/BSP_MeshPrimitives.cpp b/intern/bsp/intern/BSP_MeshPrimitives.cpp index 54db5851be3..2bc05f5536c 100644 --- a/intern/bsp/intern/BSP_MeshPrimitives.cpp +++ b/intern/bsp/intern/BSP_MeshPrimitives.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bsp/intern/BSP_MeshPrimitives.h b/intern/bsp/intern/BSP_MeshPrimitives.h index d245ed02524..370f0f646f5 100644 --- a/intern/bsp/intern/BSP_MeshPrimitives.h +++ b/intern/bsp/intern/BSP_MeshPrimitives.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_BSP_MeshPrimitives diff --git a/intern/bsp/intern/CSG_BooleanOps.cpp b/intern/bsp/intern/CSG_BooleanOps.cpp index c6f4c5d34d0..c67cc83bf9e 100644 --- a/intern/bsp/intern/CSG_BooleanOps.cpp +++ b/intern/bsp/intern/CSG_BooleanOps.cpp @@ -1,13 +1,10 @@ /** - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -25,7 +22,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/bsp/intern/Makefile b/intern/bsp/intern/Makefile index a5e8565a6ff..99a21fda7d4 100644 --- a/intern/bsp/intern/Makefile +++ b/intern/bsp/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # string intern Makefile # diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp index ec34b104e4a..ea580ece05e 100644 --- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp +++ b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h index 042c73174a6..dc4cc658c74 100644 --- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h +++ b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BSP_GhostTest_h diff --git a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp b/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp index 4f5f5d46535..f7e3f05850b 100644 --- a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp +++ b/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h b/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h index 314b9691137..82fef731214 100644 --- a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h +++ b/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BSP_MeshDrawer_h diff --git a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp b/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp index f148250f1aa..92de4fb0ac1 100644 --- a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp +++ b/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h b/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h index d2e9b8cd2cc..9a74c4477c7 100644 --- a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h +++ b/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BSP_PlyLoader_h diff --git a/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h b/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h index eeb4df3d0d9..daec3957a37 100644 --- a/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h +++ b/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef BSP_TMesh_h diff --git a/intern/bsp/test/BSP_GhostTest/Makefile b/intern/bsp/test/BSP_GhostTest/Makefile index 06dded40a17..801c34bab83 100644 --- a/intern/bsp/test/BSP_GhostTest/Makefile +++ b/intern/bsp/test/BSP_GhostTest/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # BSP_GhostTest Makefile # diff --git a/intern/bsp/test/BSP_GhostTest/main.cpp b/intern/bsp/test/BSP_GhostTest/main.cpp index 6b0e0d66234..4cc7b4ea941 100644 --- a/intern/bsp/test/BSP_GhostTest/main.cpp +++ b/intern/bsp/test/BSP_GhostTest/main.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/bsp/test/BSP_GhostTest/ply.h b/intern/bsp/test/BSP_GhostTest/ply.h index 7947d224c5f..3b10b2f0cd5 100644 --- a/intern/bsp/test/BSP_GhostTest/ply.h +++ b/intern/bsp/test/BSP_GhostTest/ply.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/bsp/test/BSP_GhostTest/plyfile.c b/intern/bsp/test/BSP_GhostTest/plyfile.c index fd808aa0889..45336a677e4 100644 --- a/intern/bsp/test/BSP_GhostTest/plyfile.c +++ b/intern/bsp/test/BSP_GhostTest/plyfile.c @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/bsp/test/Makefile b/intern/bsp/test/Makefile index 17ed638d745..eebf7470a0f 100644 --- a/intern/bsp/test/Makefile +++ b/intern/bsp/test/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # bsp test makefile. # diff --git a/intern/container/CMakeLists.txt b/intern/container/CMakeLists.txt index 497a7355edf..c1057ebfe70 100644 --- a/intern/container/CMakeLists.txt +++ b/intern/container/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC .) diff --git a/intern/container/CTR_List.h b/intern/container/CTR_List.h index 2ca2d60d0e7..8d62daf2139 100644 --- a/intern/container/CTR_List.h +++ b/intern/container/CTR_List.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,38 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -/** - * $Id$ - * ***** BEGIN GPL/BL DUAL 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ diff --git a/intern/container/CTR_Map.h b/intern/container/CTR_Map.h index 8329337479b..cc798186486 100644 --- a/intern/container/CTR_Map.h +++ b/intern/container/CTR_Map.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef CTR_MAP_H diff --git a/intern/container/CTR_TaggedIndex.h b/intern/container/CTR_TaggedIndex.h index 87bc8a4315e..7a7bd85e890 100644 --- a/intern/container/CTR_TaggedIndex.h +++ b/intern/container/CTR_TaggedIndex.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/container/CTR_TaggedSetOps.h b/intern/container/CTR_TaggedSetOps.h index 0a0367ec673..7d64dbaa8ce 100644 --- a/intern/container/CTR_TaggedSetOps.h +++ b/intern/container/CTR_TaggedSetOps.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_LOD_TaggedSetOps_h diff --git a/intern/container/CTR_UHeap.h b/intern/container/CTR_UHeap.h index a7fc33387ee..797c4f2b988 100644 --- a/intern/container/CTR_UHeap.h +++ b/intern/container/CTR_UHeap.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/container/Makefile b/intern/container/Makefile index 48343612ef2..76cba5b3ea1 100644 --- a/intern/container/Makefile +++ b/intern/container/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # container main makefile. # diff --git a/intern/container/intern/CTR_List.cpp b/intern/container/intern/CTR_List.cpp index 9cbb384c835..31db99faac7 100644 --- a/intern/container/intern/CTR_List.cpp +++ b/intern/container/intern/CTR_List.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/container/intern/Makefile b/intern/container/intern/Makefile index 292df5b7cbc..8bca6936d6b 100644 --- a/intern/container/intern/Makefile +++ b/intern/container/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # container intern Makefile # diff --git a/intern/decimation/CMakeLists.txt b/intern/decimation/CMakeLists.txt index 3b7f428c9b9..8d3708951b7 100644 --- a/intern/decimation/CMakeLists.txt +++ b/intern/decimation/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC . ../moto/include ../container ../memutil) diff --git a/intern/decimation/Makefile b/intern/decimation/Makefile index 7bf645a39c9..9241d87c3a3 100644 --- a/intern/decimation/Makefile +++ b/intern/decimation/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # decimation main makefile. # diff --git a/intern/decimation/extern/LOD_decimation.h b/intern/decimation/extern/LOD_decimation.h index 6ebce0206f3..6455add5998 100644 --- a/intern/decimation/extern/LOD_decimation.h +++ b/intern/decimation/extern/LOD_decimation.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/decimation/intern/LOD_DecimationClass.h b/intern/decimation/intern/LOD_DecimationClass.h index 1a3e8dd3620..51c9c180910 100644 --- a/intern/decimation/intern/LOD_DecimationClass.h +++ b/intern/decimation/intern/LOD_DecimationClass.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_LOD_DecimationClass_h diff --git a/intern/decimation/intern/LOD_EdgeCollapser.cpp b/intern/decimation/intern/LOD_EdgeCollapser.cpp index 86b2fbaf423..52b0481d126 100644 --- a/intern/decimation/intern/LOD_EdgeCollapser.cpp +++ b/intern/decimation/intern/LOD_EdgeCollapser.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/decimation/intern/LOD_EdgeCollapser.h b/intern/decimation/intern/LOD_EdgeCollapser.h index 482eccacec2..b0b2163d173 100644 --- a/intern/decimation/intern/LOD_EdgeCollapser.h +++ b/intern/decimation/intern/LOD_EdgeCollapser.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLDUED_EgdeCollapser_h diff --git a/intern/decimation/intern/LOD_ExternBufferEditor.h b/intern/decimation/intern/LOD_ExternBufferEditor.h index 9f628c4455b..f4178a4b965 100644 --- a/intern/decimation/intern/LOD_ExternBufferEditor.h +++ b/intern/decimation/intern/LOD_ExternBufferEditor.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/decimation/intern/LOD_ExternNormalEditor.cpp b/intern/decimation/intern/LOD_ExternNormalEditor.cpp index 7c9191b60c7..b7c7b5a529b 100644 --- a/intern/decimation/intern/LOD_ExternNormalEditor.cpp +++ b/intern/decimation/intern/LOD_ExternNormalEditor.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "LOD_ExternNormalEditor.h" diff --git a/intern/decimation/intern/LOD_ExternNormalEditor.h b/intern/decimation/intern/LOD_ExternNormalEditor.h index 190ea5bdd8c..83b50645e26 100644 --- a/intern/decimation/intern/LOD_ExternNormalEditor.h +++ b/intern/decimation/intern/LOD_ExternNormalEditor.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_ExternNormalEditor_h diff --git a/intern/decimation/intern/LOD_FaceNormalEditor.cpp b/intern/decimation/intern/LOD_FaceNormalEditor.cpp index bb384dca04c..0f5086e3e95 100644 --- a/intern/decimation/intern/LOD_FaceNormalEditor.cpp +++ b/intern/decimation/intern/LOD_FaceNormalEditor.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ // implementation of LOD_FaceNormalEditor.h diff --git a/intern/decimation/intern/LOD_FaceNormalEditor.h b/intern/decimation/intern/LOD_FaceNormalEditor.h index 892e1f0fbc7..f4dced1370b 100644 --- a/intern/decimation/intern/LOD_FaceNormalEditor.h +++ b/intern/decimation/intern/LOD_FaceNormalEditor.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_FaceNormalEditor_h diff --git a/intern/decimation/intern/LOD_ManMesh2.cpp b/intern/decimation/intern/LOD_ManMesh2.cpp index 322a48e337b..eeb497bb09e 100644 --- a/intern/decimation/intern/LOD_ManMesh2.cpp +++ b/intern/decimation/intern/LOD_ManMesh2.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/decimation/intern/LOD_ManMesh2.h b/intern/decimation/intern/LOD_ManMesh2.h index 46ddcff5d80..cfa1422313a 100644 --- a/intern/decimation/intern/LOD_ManMesh2.h +++ b/intern/decimation/intern/LOD_ManMesh2.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_ManMesh2_h diff --git a/intern/decimation/intern/LOD_MeshBounds.h b/intern/decimation/intern/LOD_MeshBounds.h index f694ff2dcb3..a8b29eb44f2 100644 --- a/intern/decimation/intern/LOD_MeshBounds.h +++ b/intern/decimation/intern/LOD_MeshBounds.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_MeshBounds_h diff --git a/intern/decimation/intern/LOD_MeshException.h b/intern/decimation/intern/LOD_MeshException.h index 4bad167a81b..9358e0fd7e8 100644 --- a/intern/decimation/intern/LOD_MeshException.h +++ b/intern/decimation/intern/LOD_MeshException.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_MeshExceptions_h diff --git a/intern/decimation/intern/LOD_MeshPrimitives.cpp b/intern/decimation/intern/LOD_MeshPrimitives.cpp index 42707252a45..e2e4481b13e 100644 --- a/intern/decimation/intern/LOD_MeshPrimitives.cpp +++ b/intern/decimation/intern/LOD_MeshPrimitives.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/decimation/intern/LOD_MeshPrimitives.h b/intern/decimation/intern/LOD_MeshPrimitives.h index 1168c9cc813..f5a4767f0de 100644 --- a/intern/decimation/intern/LOD_MeshPrimitives.h +++ b/intern/decimation/intern/LOD_MeshPrimitives.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_MeshPrimitives_h diff --git a/intern/decimation/intern/LOD_QSDecimator.cpp b/intern/decimation/intern/LOD_QSDecimator.cpp index a9fd5267c54..1a0ec87f05b 100644 --- a/intern/decimation/intern/LOD_QSDecimator.cpp +++ b/intern/decimation/intern/LOD_QSDecimator.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/decimation/intern/LOD_QSDecimator.h b/intern/decimation/intern/LOD_QSDecimator.h index 0492e0bf09e..77809037d7b 100644 --- a/intern/decimation/intern/LOD_QSDecimator.h +++ b/intern/decimation/intern/LOD_QSDecimator.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_LOD_QSDecimator_H diff --git a/intern/decimation/intern/LOD_Quadric.h b/intern/decimation/intern/LOD_Quadric.h index f06b0af65b0..65ba4759f0c 100644 --- a/intern/decimation/intern/LOD_Quadric.h +++ b/intern/decimation/intern/LOD_Quadric.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_LOD_Quadric_h diff --git a/intern/decimation/intern/LOD_QuadricEditor.cpp b/intern/decimation/intern/LOD_QuadricEditor.cpp index c1e5614b01d..8858450ecd1 100644 --- a/intern/decimation/intern/LOD_QuadricEditor.cpp +++ b/intern/decimation/intern/LOD_QuadricEditor.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/decimation/intern/LOD_QuadricEditor.h b/intern/decimation/intern/LOD_QuadricEditor.h index 41e7d227d54..925045bc1e6 100644 --- a/intern/decimation/intern/LOD_QuadricEditor.h +++ b/intern/decimation/intern/LOD_QuadricEditor.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_LOD_QuadricEditor_h diff --git a/intern/decimation/intern/LOD_decimation.cpp b/intern/decimation/intern/LOD_decimation.cpp index 0f6500b829d..be10c180319 100644 --- a/intern/decimation/intern/LOD_decimation.cpp +++ b/intern/decimation/intern/LOD_decimation.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ // implementation of external c api diff --git a/intern/decimation/intern/Makefile b/intern/decimation/intern/Makefile index d7c9d89d9c7..49720b2d975 100644 --- a/intern/decimation/intern/Makefile +++ b/intern/decimation/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # decimation intern Makefile # diff --git a/intern/elbeem/CMakeLists.txt b/intern/elbeem/CMakeLists.txt index 48d25901499..bd88bc0c5f7 100644 --- a/intern/elbeem/CMakeLists.txt +++ b/intern/elbeem/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC ${PNG_INC} ${ZLIB_INC} ${SDL_INC}) diff --git a/intern/elbeem/Makefile b/intern/elbeem/Makefile index 3e0333fb3cd..9ea08d63374 100644 --- a/intern/elbeem/Makefile +++ b/intern/elbeem/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # elbeem main makefile. # diff --git a/intern/elbeem/extern/LBM_fluidsim.h b/intern/elbeem/extern/LBM_fluidsim.h index 0f7e0e1ef5d..6e7fc86213c 100644 --- a/intern/elbeem/extern/LBM_fluidsim.h +++ b/intern/elbeem/extern/LBM_fluidsim.h @@ -3,15 +3,12 @@ * * $Id$ * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -29,7 +26,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef LBM_FLUIDSIM_H #define LBM_FLUIDSIM_H diff --git a/intern/elbeem/intern/Makefile b/intern/elbeem/intern/Makefile index 49f0b936e6b..c03b8678186 100644 --- a/intern/elbeem/intern/Makefile +++ b/intern/elbeem/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # elbeem intern Makefile # diff --git a/intern/ghost/CMakeLists.txt b/intern/ghost/CMakeLists.txt index 1e1380df9a3..b559d49958c 100644 --- a/intern/ghost/CMakeLists.txt +++ b/intern/ghost/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC . ../string ${WINTAB_INC}) diff --git a/intern/ghost/GHOST_C-api.h b/intern/ghost/GHOST_C-api.h index 11b0204eacb..cb1eac7a9a6 100644 --- a/intern/ghost/GHOST_C-api.h +++ b/intern/ghost/GHOST_C-api.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_C-api.h diff --git a/intern/ghost/GHOST_IEvent.h b/intern/ghost/GHOST_IEvent.h index 4ec47c6d732..c668649d658 100644 --- a/intern/ghost/GHOST_IEvent.h +++ b/intern/ghost/GHOST_IEvent.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_IEvent.h diff --git a/intern/ghost/GHOST_IEventConsumer.h b/intern/ghost/GHOST_IEventConsumer.h index 4186d4c1cab..59f39968a79 100644 --- a/intern/ghost/GHOST_IEventConsumer.h +++ b/intern/ghost/GHOST_IEventConsumer.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_IEventConsumer.h diff --git a/intern/ghost/GHOST_ISystem.h b/intern/ghost/GHOST_ISystem.h index 0cb860d8158..2ad2e9ddce7 100644 --- a/intern/ghost/GHOST_ISystem.h +++ b/intern/ghost/GHOST_ISystem.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_ISystem.h diff --git a/intern/ghost/GHOST_ITimerTask.h b/intern/ghost/GHOST_ITimerTask.h index fa2f788823f..dec5c21b3db 100644 --- a/intern/ghost/GHOST_ITimerTask.h +++ b/intern/ghost/GHOST_ITimerTask.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_ITimerTask.h diff --git a/intern/ghost/GHOST_IWindow.h b/intern/ghost/GHOST_IWindow.h index 5f6bbe553c6..0861d8b8946 100644 --- a/intern/ghost/GHOST_IWindow.h +++ b/intern/ghost/GHOST_IWindow.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_IWindow.h diff --git a/intern/ghost/GHOST_Rect.h b/intern/ghost/GHOST_Rect.h index 6b303504572..6271ecad408 100644 --- a/intern/ghost/GHOST_Rect.h +++ b/intern/ghost/GHOST_Rect.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_Rect.h diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h index 7b791c44fd8..f81192f1887 100644 --- a/intern/ghost/GHOST_Types.h +++ b/intern/ghost/GHOST_Types.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef _GHOST_TYPES_H_ diff --git a/intern/ghost/Makefile b/intern/ghost/Makefile index fe65afbfb93..f809a32ac8f 100644 --- a/intern/ghost/Makefile +++ b/intern/ghost/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # ghost main makefile. # diff --git a/intern/ghost/intern/GHOST_Buttons.cpp b/intern/ghost/intern/GHOST_Buttons.cpp index def01b0786f..3db6bfe9f2c 100644 --- a/intern/ghost/intern/GHOST_Buttons.cpp +++ b/intern/ghost/intern/GHOST_Buttons.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "GHOST_Buttons.h" diff --git a/intern/ghost/intern/GHOST_Buttons.h b/intern/ghost/intern/GHOST_Buttons.h index e244d54b2c6..5a5e32b1f45 100644 --- a/intern/ghost/intern/GHOST_Buttons.h +++ b/intern/ghost/intern/GHOST_Buttons.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_Buttons.h diff --git a/intern/ghost/intern/GHOST_C-api.cpp b/intern/ghost/intern/GHOST_C-api.cpp index fe5ed2bf86a..b7643784250 100644 --- a/intern/ghost/intern/GHOST_C-api.cpp +++ b/intern/ghost/intern/GHOST_C-api.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp b/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp index 2a5e7fb9b71..9e7337c2721 100644 --- a/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp +++ b/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_CallbackEventConsumer.h b/intern/ghost/intern/GHOST_CallbackEventConsumer.h index eb54d1c0e14..0929ba64c65 100644 --- a/intern/ghost/intern/GHOST_CallbackEventConsumer.h +++ b/intern/ghost/intern/GHOST_CallbackEventConsumer.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_CallbackEventConsumer.h diff --git a/intern/ghost/intern/GHOST_Debug.h b/intern/ghost/intern/GHOST_Debug.h index 5a56c8ef6ea..7f836202720 100644 --- a/intern/ghost/intern/GHOST_Debug.h +++ b/intern/ghost/intern/GHOST_Debug.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_DisplayManager.cpp b/intern/ghost/intern/GHOST_DisplayManager.cpp index f806daee86b..a06692797c7 100644 --- a/intern/ghost/intern/GHOST_DisplayManager.cpp +++ b/intern/ghost/intern/GHOST_DisplayManager.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_DisplayManager.h b/intern/ghost/intern/GHOST_DisplayManager.h index d7133f4401f..a707b5aeddd 100644 --- a/intern/ghost/intern/GHOST_DisplayManager.h +++ b/intern/ghost/intern/GHOST_DisplayManager.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_DisplayManager.h diff --git a/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp b/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp index 9877d55d8a5..a0e0f6a8c0a 100644 --- a/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp +++ b/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_DisplayManagerCarbon.h b/intern/ghost/intern/GHOST_DisplayManagerCarbon.h index 42a1aa37a5a..3655fe86253 100644 --- a/intern/ghost/intern/GHOST_DisplayManagerCarbon.h +++ b/intern/ghost/intern/GHOST_DisplayManagerCarbon.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_DisplayManagerCarbon.h diff --git a/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp b/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp index 3fbacfb1db8..a8565578967 100644 --- a/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp +++ b/intern/ghost/intern/GHOST_DisplayManagerWin32.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_DisplayManagerWin32.h b/intern/ghost/intern/GHOST_DisplayManagerWin32.h index 71fc56257f8..63bd26c97bc 100644 --- a/intern/ghost/intern/GHOST_DisplayManagerWin32.h +++ b/intern/ghost/intern/GHOST_DisplayManagerWin32.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_DisplayManagerWin32.h diff --git a/intern/ghost/intern/GHOST_DisplayManagerX11.cpp b/intern/ghost/intern/GHOST_DisplayManagerX11.cpp index 9695e24e737..85170de9458 100644 --- a/intern/ghost/intern/GHOST_DisplayManagerX11.cpp +++ b/intern/ghost/intern/GHOST_DisplayManagerX11.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/ghost/intern/GHOST_DisplayManagerX11.h b/intern/ghost/intern/GHOST_DisplayManagerX11.h index 18226a25e74..4fbc7231b29 100644 --- a/intern/ghost/intern/GHOST_DisplayManagerX11.h +++ b/intern/ghost/intern/GHOST_DisplayManagerX11.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_DisplayManagerX11.h diff --git a/intern/ghost/intern/GHOST_Event.h b/intern/ghost/intern/GHOST_Event.h index e4844f9bab5..20703b66c4f 100644 --- a/intern/ghost/intern/GHOST_Event.h +++ b/intern/ghost/intern/GHOST_Event.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_Event.h diff --git a/intern/ghost/intern/GHOST_EventButton.h b/intern/ghost/intern/GHOST_EventButton.h index c808fd44430..82abec8d547 100644 --- a/intern/ghost/intern/GHOST_EventButton.h +++ b/intern/ghost/intern/GHOST_EventButton.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_EventButton.h diff --git a/intern/ghost/intern/GHOST_EventCursor.h b/intern/ghost/intern/GHOST_EventCursor.h index a174242653e..1d1474c96d8 100644 --- a/intern/ghost/intern/GHOST_EventCursor.h +++ b/intern/ghost/intern/GHOST_EventCursor.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_EventCursor.h diff --git a/intern/ghost/intern/GHOST_EventKey.h b/intern/ghost/intern/GHOST_EventKey.h index b170d5a9a48..9f2767ee97a 100644 --- a/intern/ghost/intern/GHOST_EventKey.h +++ b/intern/ghost/intern/GHOST_EventKey.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_EventKey.h diff --git a/intern/ghost/intern/GHOST_EventManager.cpp b/intern/ghost/intern/GHOST_EventManager.cpp index ba20cce12fd..f9b13115f32 100644 --- a/intern/ghost/intern/GHOST_EventManager.cpp +++ b/intern/ghost/intern/GHOST_EventManager.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_EventManager.h b/intern/ghost/intern/GHOST_EventManager.h index 068ded8ddee..33e5c2f20ba 100644 --- a/intern/ghost/intern/GHOST_EventManager.h +++ b/intern/ghost/intern/GHOST_EventManager.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_EventManager.h diff --git a/intern/ghost/intern/GHOST_EventPrinter.cpp b/intern/ghost/intern/GHOST_EventPrinter.cpp index ad65d1fbb18..ae9c0d81a01 100644 --- a/intern/ghost/intern/GHOST_EventPrinter.cpp +++ b/intern/ghost/intern/GHOST_EventPrinter.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_EventPrinter.h diff --git a/intern/ghost/intern/GHOST_EventPrinter.h b/intern/ghost/intern/GHOST_EventPrinter.h index 9838d2fb6d5..ceba260d7b3 100644 --- a/intern/ghost/intern/GHOST_EventPrinter.h +++ b/intern/ghost/intern/GHOST_EventPrinter.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_EventPrinter.h diff --git a/intern/ghost/intern/GHOST_EventWheel.h b/intern/ghost/intern/GHOST_EventWheel.h index 7776a1778db..4b850609976 100644 --- a/intern/ghost/intern/GHOST_EventWheel.h +++ b/intern/ghost/intern/GHOST_EventWheel.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_EventWheel.h diff --git a/intern/ghost/intern/GHOST_ISystem.cpp b/intern/ghost/intern/GHOST_ISystem.cpp index 677978973aa..9329e68132b 100644 --- a/intern/ghost/intern/GHOST_ISystem.cpp +++ b/intern/ghost/intern/GHOST_ISystem.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_ModifierKeys.cpp b/intern/ghost/intern/GHOST_ModifierKeys.cpp index 36293d87c26..6cc95fda43e 100644 --- a/intern/ghost/intern/GHOST_ModifierKeys.cpp +++ b/intern/ghost/intern/GHOST_ModifierKeys.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_ModifierKeys.h b/intern/ghost/intern/GHOST_ModifierKeys.h index 6b26dd5829e..fcb9f3d41c2 100644 --- a/intern/ghost/intern/GHOST_ModifierKeys.h +++ b/intern/ghost/intern/GHOST_ModifierKeys.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_ModifierKeys.h diff --git a/intern/ghost/intern/GHOST_Rect.cpp b/intern/ghost/intern/GHOST_Rect.cpp index 70773fe1497..2d6464d9b95 100644 --- a/intern/ghost/intern/GHOST_Rect.cpp +++ b/intern/ghost/intern/GHOST_Rect.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/ghost/intern/GHOST_System.cpp b/intern/ghost/intern/GHOST_System.cpp index b0095a6a5a7..458a35bf34b 100644 --- a/intern/ghost/intern/GHOST_System.cpp +++ b/intern/ghost/intern/GHOST_System.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_System.h b/intern/ghost/intern/GHOST_System.h index 8477d70c42f..efce931860a 100644 --- a/intern/ghost/intern/GHOST_System.h +++ b/intern/ghost/intern/GHOST_System.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_System.h diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp index c14ea101c6b..568f7ecf9b8 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.cpp +++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_SystemCarbon.h b/intern/ghost/intern/GHOST_SystemCarbon.h index 68e2d059226..2afc8e0885a 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.h +++ b/intern/ghost/intern/GHOST_SystemCarbon.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_SystemCarbon.h diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index c15e4f1246c..82a76b3c706 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_SystemWin32.h b/intern/ghost/intern/GHOST_SystemWin32.h index 762e5a988a4..c26ef25e366 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.h +++ b/intern/ghost/intern/GHOST_SystemWin32.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_SystemWin32.h diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 1b0d4448f1d..d6868d143dd 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h index 1c100bee852..726cdfb2fff 100644 --- a/intern/ghost/intern/GHOST_SystemX11.h +++ b/intern/ghost/intern/GHOST_SystemX11.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_SystemX11.h diff --git a/intern/ghost/intern/GHOST_TimerManager.cpp b/intern/ghost/intern/GHOST_TimerManager.cpp index 9f50b350baa..14b78ab6f7c 100644 --- a/intern/ghost/intern/GHOST_TimerManager.cpp +++ b/intern/ghost/intern/GHOST_TimerManager.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_TimerManager.h b/intern/ghost/intern/GHOST_TimerManager.h index ff42f95fc0f..27bbdb1ea1d 100644 --- a/intern/ghost/intern/GHOST_TimerManager.h +++ b/intern/ghost/intern/GHOST_TimerManager.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_TimerManager.h diff --git a/intern/ghost/intern/GHOST_TimerTask.h b/intern/ghost/intern/GHOST_TimerTask.h index 49bbe5e09ab..14ddcc63c2c 100644 --- a/intern/ghost/intern/GHOST_TimerTask.h +++ b/intern/ghost/intern/GHOST_TimerTask.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_TimerTask.h diff --git a/intern/ghost/intern/GHOST_Window.cpp b/intern/ghost/intern/GHOST_Window.cpp index f4f7c581814..a35680d1586 100644 --- a/intern/ghost/intern/GHOST_Window.cpp +++ b/intern/ghost/intern/GHOST_Window.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_Window.h b/intern/ghost/intern/GHOST_Window.h index acf28177b37..06318613b14 100644 --- a/intern/ghost/intern/GHOST_Window.h +++ b/intern/ghost/intern/GHOST_Window.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_Window.h diff --git a/intern/ghost/intern/GHOST_WindowCarbon.cpp b/intern/ghost/intern/GHOST_WindowCarbon.cpp index 04debe36191..9ae9e283b69 100644 --- a/intern/ghost/intern/GHOST_WindowCarbon.cpp +++ b/intern/ghost/intern/GHOST_WindowCarbon.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_WindowCarbon.h b/intern/ghost/intern/GHOST_WindowCarbon.h index 5b81470a030..dd00add7fb1 100644 --- a/intern/ghost/intern/GHOST_WindowCarbon.h +++ b/intern/ghost/intern/GHOST_WindowCarbon.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_WindowCarbon.h diff --git a/intern/ghost/intern/GHOST_WindowManager.cpp b/intern/ghost/intern/GHOST_WindowManager.cpp index 775260a9503..2b0809929c5 100644 --- a/intern/ghost/intern/GHOST_WindowManager.cpp +++ b/intern/ghost/intern/GHOST_WindowManager.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_WindowManager.h b/intern/ghost/intern/GHOST_WindowManager.h index f2ad003d801..46d8036328e 100644 --- a/intern/ghost/intern/GHOST_WindowManager.h +++ b/intern/ghost/intern/GHOST_WindowManager.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_WindowManager.h diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index ef7294c2354..230df02c359 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/intern/GHOST_WindowWin32.h b/intern/ghost/intern/GHOST_WindowWin32.h index 08209c0ec29..8b461802fa4 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.h +++ b/intern/ghost/intern/GHOST_WindowWin32.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_WindowWin32.h diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp index 1b9b3c491d5..a98a59377c7 100644 --- a/intern/ghost/intern/GHOST_WindowX11.cpp +++ b/intern/ghost/intern/GHOST_WindowX11.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "GHOST_WindowX11.h" diff --git a/intern/ghost/intern/GHOST_WindowX11.h b/intern/ghost/intern/GHOST_WindowX11.h index 0de4f65acd1..1203dbde80d 100644 --- a/intern/ghost/intern/GHOST_WindowX11.h +++ b/intern/ghost/intern/GHOST_WindowX11.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file GHOST_WindowX11.h diff --git a/intern/ghost/intern/Makefile b/intern/ghost/intern/Makefile index cccbf9a822b..467ec768720 100644 --- a/intern/ghost/intern/Makefile +++ b/intern/ghost/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # ghost intern Makefile # diff --git a/intern/ghost/test/Makefile b/intern/ghost/test/Makefile index ded21c32cc6..d4250cecf26 100644 --- a/intern/ghost/test/Makefile +++ b/intern/ghost/test/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # GHOST test applications makefile. # This bounces to test application directories. # diff --git a/intern/ghost/test/gears/GHOST_C-Test.c b/intern/ghost/test/gears/GHOST_C-Test.c index 9fd4e155b3b..958b4da46af 100644 --- a/intern/ghost/test/gears/GHOST_C-Test.c +++ b/intern/ghost/test/gears/GHOST_C-Test.c @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/test/gears/GHOST_Test.cpp b/intern/ghost/test/gears/GHOST_Test.cpp index 3abdd3977eb..974deeb72fd 100644 --- a/intern/ghost/test/gears/GHOST_Test.cpp +++ b/intern/ghost/test/gears/GHOST_Test.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/ghost/test/gears/Makefile b/intern/ghost/test/gears/Makefile index b7966b4d157..23e76778f69 100644 --- a/intern/ghost/test/gears/Makefile +++ b/intern/ghost/test/gears/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # GHOST gears test application Makefile # diff --git a/intern/ghost/test/multitest/Basic.c b/intern/ghost/test/multitest/Basic.c index db2ad9428b2..20d40278798 100644 --- a/intern/ghost/test/multitest/Basic.c +++ b/intern/ghost/test/multitest/Basic.c @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "Basic.h" diff --git a/intern/ghost/test/multitest/Basic.h b/intern/ghost/test/multitest/Basic.h index 94fb0cdfc17..351fdf43661 100644 --- a/intern/ghost/test/multitest/Basic.h +++ b/intern/ghost/test/multitest/Basic.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ int min_i (int a, int b); diff --git a/intern/ghost/test/multitest/EventToBuf.c b/intern/ghost/test/multitest/EventToBuf.c index 8ca8c9cecc8..7443872ae1c 100644 --- a/intern/ghost/test/multitest/EventToBuf.c +++ b/intern/ghost/test/multitest/EventToBuf.c @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include diff --git a/intern/ghost/test/multitest/EventToBuf.h b/intern/ghost/test/multitest/EventToBuf.h index 0324af1f73f..a7fce592ff9 100644 --- a/intern/ghost/test/multitest/EventToBuf.h +++ b/intern/ghost/test/multitest/EventToBuf.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ char *eventtype_to_string(GHOST_TEventType type); diff --git a/intern/ghost/test/multitest/GL.h b/intern/ghost/test/multitest/GL.h index 7a96ae9e9f8..172796ba557 100644 --- a/intern/ghost/test/multitest/GL.h +++ b/intern/ghost/test/multitest/GL.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #if defined(WIN32) || defined(__APPLE__) diff --git a/intern/ghost/test/multitest/Makefile b/intern/ghost/test/multitest/Makefile index a424a397502..e67faf012d2 100644 --- a/intern/ghost/test/multitest/Makefile +++ b/intern/ghost/test/multitest/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # GHOST gears test application Makefile # diff --git a/intern/ghost/test/multitest/MultiTest.c b/intern/ghost/test/multitest/MultiTest.c index e81fb3c034e..1219ae83301 100644 --- a/intern/ghost/test/multitest/MultiTest.c +++ b/intern/ghost/test/multitest/MultiTest.c @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #define FALSE 0 diff --git a/intern/ghost/test/multitest/ScrollBar.c b/intern/ghost/test/multitest/ScrollBar.c index 6ede0619b5f..5c7586037d4 100644 --- a/intern/ghost/test/multitest/ScrollBar.c +++ b/intern/ghost/test/multitest/ScrollBar.c @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include diff --git a/intern/ghost/test/multitest/ScrollBar.h b/intern/ghost/test/multitest/ScrollBar.h index b49ad041415..d6fd3dc2552 100644 --- a/intern/ghost/test/multitest/ScrollBar.h +++ b/intern/ghost/test/multitest/ScrollBar.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ typedef struct _ScrollBar ScrollBar; diff --git a/intern/ghost/test/multitest/Util.c b/intern/ghost/test/multitest/Util.c index 4cf23ff06a9..c4d5e890adb 100644 --- a/intern/ghost/test/multitest/Util.c +++ b/intern/ghost/test/multitest/Util.c @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include diff --git a/intern/ghost/test/multitest/Util.h b/intern/ghost/test/multitest/Util.h index e3e51824515..33632308ae2 100644 --- a/intern/ghost/test/multitest/Util.h +++ b/intern/ghost/test/multitest/Util.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ void* memdbl (void *mem, int *size_pr, int item_size); diff --git a/intern/ghost/test/multitest/WindowData.c b/intern/ghost/test/multitest/WindowData.c index 3c5739fd593..2e67b559b48 100644 --- a/intern/ghost/test/multitest/WindowData.c +++ b/intern/ghost/test/multitest/WindowData.c @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include diff --git a/intern/ghost/test/multitest/WindowData.h b/intern/ghost/test/multitest/WindowData.h index 10a1ca710f2..311a5194a5c 100644 --- a/intern/ghost/test/multitest/WindowData.h +++ b/intern/ghost/test/multitest/WindowData.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ typedef void (*WindowDataHandler)(void *priv, GHOST_EventHandle evt); diff --git a/intern/guardedalloc/CMakeLists.txt b/intern/guardedalloc/CMakeLists.txt index 71e3a40fefc..af64fb99d58 100644 --- a/intern/guardedalloc/CMakeLists.txt +++ b/intern/guardedalloc/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC .) diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h index 73eddff7d8a..d004e7952cc 100644 --- a/intern/guardedalloc/MEM_guardedalloc.h +++ b/intern/guardedalloc/MEM_guardedalloc.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/guardedalloc/Makefile b/intern/guardedalloc/Makefile index 702e7d5264f..f0cef3d222c 100644 --- a/intern/guardedalloc/Makefile +++ b/intern/guardedalloc/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # decimation main makefile. # diff --git a/intern/guardedalloc/intern/Makefile b/intern/guardedalloc/intern/Makefile index bc96ba5f27f..a55d6375014 100644 --- a/intern/guardedalloc/intern/Makefile +++ b/intern/guardedalloc/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # guardedalloc intern Makefile # diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index af9443428f7..f95d9aa418a 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/guardedalloc/test/Makefile b/intern/guardedalloc/test/Makefile index 760695bd19e..a0feb359940 100644 --- a/intern/guardedalloc/test/Makefile +++ b/intern/guardedalloc/test/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # Test the guarded memory module # diff --git a/intern/guardedalloc/test/simpletest/Makefile b/intern/guardedalloc/test/simpletest/Makefile index 8f1db9c4cac..2ee39564b75 100644 --- a/intern/guardedalloc/test/simpletest/Makefile +++ b/intern/guardedalloc/test/simpletest/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # Test the guarded memory module # diff --git a/intern/guardedalloc/test/simpletest/memtest.c b/intern/guardedalloc/test/simpletest/memtest.c index c35af2d9ce2..ab8ccf942a7 100644 --- a/intern/guardedalloc/test/simpletest/memtest.c +++ b/intern/guardedalloc/test/simpletest/memtest.c @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/iksolver/CMakeLists.txt b/intern/iksolver/CMakeLists.txt index c0990c2a405..da69f2a3332 100644 --- a/intern/iksolver/CMakeLists.txt +++ b/intern/iksolver/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC intern ../moto/include ../memutil) diff --git a/intern/iksolver/Makefile b/intern/iksolver/Makefile index b439dcf8fa3..a6cfa88eb30 100644 --- a/intern/iksolver/Makefile +++ b/intern/iksolver/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # iksolver main makefile. # diff --git a/intern/iksolver/extern/IK_solver.h b/intern/iksolver/extern/IK_solver.h index bf53a9e3724..e80f66b22f9 100644 --- a/intern/iksolver/extern/IK_solver.h +++ b/intern/iksolver/extern/IK_solver.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/iksolver/intern/IK_QJacobian.cpp b/intern/iksolver/intern/IK_QJacobian.cpp index 1dd4d086aa8..f2b350599d0 100644 --- a/intern/iksolver/intern/IK_QJacobian.cpp +++ b/intern/iksolver/intern/IK_QJacobian.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original Author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "IK_QJacobian.h" diff --git a/intern/iksolver/intern/IK_QJacobian.h b/intern/iksolver/intern/IK_QJacobian.h index 3e20e4a9fd0..9c63ef91fec 100644 --- a/intern/iksolver/intern/IK_QJacobian.h +++ b/intern/iksolver/intern/IK_QJacobian.h @@ -1,15 +1,12 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -28,7 +25,7 @@ * Original Author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_IK_QJacobian_h diff --git a/intern/iksolver/intern/IK_QJacobianSolver.cpp b/intern/iksolver/intern/IK_QJacobianSolver.cpp index 17750a7195f..a0a0e277631 100644 --- a/intern/iksolver/intern/IK_QJacobianSolver.cpp +++ b/intern/iksolver/intern/IK_QJacobianSolver.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original Author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include diff --git a/intern/iksolver/intern/IK_QJacobianSolver.h b/intern/iksolver/intern/IK_QJacobianSolver.h index 9ad46cd0aa6..afe18f5522d 100644 --- a/intern/iksolver/intern/IK_QJacobianSolver.h +++ b/intern/iksolver/intern/IK_QJacobianSolver.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original Author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_IK_QJacobianSolver_h diff --git a/intern/iksolver/intern/IK_QSegment.cpp b/intern/iksolver/intern/IK_QSegment.cpp index bf38c369363..c52f1e596b9 100644 --- a/intern/iksolver/intern/IK_QSegment.cpp +++ b/intern/iksolver/intern/IK_QSegment.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original Author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "IK_QSegment.h" diff --git a/intern/iksolver/intern/IK_QSegment.h b/intern/iksolver/intern/IK_QSegment.h index 3c5df463468..23f7d4cf0d2 100644 --- a/intern/iksolver/intern/IK_QSegment.h +++ b/intern/iksolver/intern/IK_QSegment.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_IK_QSegment_h diff --git a/intern/iksolver/intern/IK_QTask.cpp b/intern/iksolver/intern/IK_QTask.cpp index c72f146b36e..91c89fb2e80 100644 --- a/intern/iksolver/intern/IK_QTask.cpp +++ b/intern/iksolver/intern/IK_QTask.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original Author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "IK_QTask.h" diff --git a/intern/iksolver/intern/IK_QTask.h b/intern/iksolver/intern/IK_QTask.h index f2fd34119a1..c291a0e7e50 100644 --- a/intern/iksolver/intern/IK_QTask.h +++ b/intern/iksolver/intern/IK_QTask.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_IK_QTask_h diff --git a/intern/iksolver/intern/IK_Solver.cpp b/intern/iksolver/intern/IK_Solver.cpp index 140c35c8c46..9de937ea4b2 100644 --- a/intern/iksolver/intern/IK_Solver.cpp +++ b/intern/iksolver/intern/IK_Solver.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original Author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "../extern/IK_solver.h" diff --git a/intern/iksolver/intern/MT_ExpMap.cpp b/intern/iksolver/intern/MT_ExpMap.cpp index 9b758103de8..23379e829cb 100644 --- a/intern/iksolver/intern/MT_ExpMap.cpp +++ b/intern/iksolver/intern/MT_ExpMap.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original Author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include "MT_ExpMap.h" diff --git a/intern/iksolver/intern/MT_ExpMap.h b/intern/iksolver/intern/MT_ExpMap.h index 401993764aa..03dbb79e906 100644 --- a/intern/iksolver/intern/MT_ExpMap.h +++ b/intern/iksolver/intern/MT_ExpMap.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -27,7 +24,7 @@ * Original author: Laurence * Contributor(s): Brecht * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef MT_ExpMap_H diff --git a/intern/iksolver/intern/Makefile b/intern/iksolver/intern/Makefile index fff4aec252d..8c90a9d5759 100644 --- a/intern/iksolver/intern/Makefile +++ b/intern/iksolver/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # iksolver intern Makefile # diff --git a/intern/iksolver/test/Makefile b/intern/iksolver/test/Makefile index c472c514bad..4ab317f9e9f 100644 --- a/intern/iksolver/test/Makefile +++ b/intern/iksolver/test/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # iksolver test makefile. # diff --git a/intern/iksolver/test/ik_glut_test/Makefile b/intern/iksolver/test/ik_glut_test/Makefile index 4b47af16599..55f7d9ee659 100644 --- a/intern/iksolver/test/ik_glut_test/Makefile +++ b/intern/iksolver/test/ik_glut_test/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # iksolver subdir bouncer. Pure waste. # diff --git a/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp b/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp index 6161addc170..42bc5b5f15e 100644 --- a/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp +++ b/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/iksolver/test/ik_glut_test/common/GlutDrawer.h b/intern/iksolver/test/ik_glut_test/common/GlutDrawer.h index 706ccb92dec..87149eb5e2f 100644 --- a/intern/iksolver/test/ik_glut_test/common/GlutDrawer.h +++ b/intern/iksolver/test/ik_glut_test/common/GlutDrawer.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_GlutDrawer diff --git a/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp b/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp index 454e76f11bb..ef7a9cadff4 100644 --- a/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp +++ b/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.h b/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.h index 595e5e19d0e..30330c3b3c6 100644 --- a/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.h +++ b/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_GlutKeyboardManager diff --git a/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp b/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp index 8221cb55a00..3bc92693882 100644 --- a/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp +++ b/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.h b/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.h index 9675bd3ca1c..0c4b70a8cfd 100644 --- a/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.h +++ b/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_GlutMouseManager_h diff --git a/intern/iksolver/test/ik_glut_test/common/Makefile b/intern/iksolver/test/ik_glut_test/common/Makefile index 07ad1837a7d..df0286040cd 100644 --- a/intern/iksolver/test/ik_glut_test/common/Makefile +++ b/intern/iksolver/test/ik_glut_test/common/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # iksolver test intern Makefile # diff --git a/intern/iksolver/test/ik_glut_test/intern/ChainDrawer.h b/intern/iksolver/test/ik_glut_test/intern/ChainDrawer.h index 6312d9c23f9..e54c1c8ade3 100644 --- a/intern/iksolver/test/ik_glut_test/intern/ChainDrawer.h +++ b/intern/iksolver/test/ik_glut_test/intern/ChainDrawer.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_ChainDrawer_h diff --git a/intern/iksolver/test/ik_glut_test/intern/Makefile b/intern/iksolver/test/ik_glut_test/intern/Makefile index fe1f4b54182..8bb1d0ccd36 100644 --- a/intern/iksolver/test/ik_glut_test/intern/Makefile +++ b/intern/iksolver/test/ik_glut_test/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # iksolver test intern Makefile # diff --git a/intern/iksolver/test/ik_glut_test/intern/MyGlutKeyHandler.h b/intern/iksolver/test/ik_glut_test/intern/MyGlutKeyHandler.h index e9a85fad320..5ef17be523e 100644 --- a/intern/iksolver/test/ik_glut_test/intern/MyGlutKeyHandler.h +++ b/intern/iksolver/test/ik_glut_test/intern/MyGlutKeyHandler.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_MyGlutKeyHandler_h diff --git a/intern/iksolver/test/ik_glut_test/intern/MyGlutMouseHandler.h b/intern/iksolver/test/ik_glut_test/intern/MyGlutMouseHandler.h index 978d9693692..6f0cd0f6e78 100644 --- a/intern/iksolver/test/ik_glut_test/intern/MyGlutMouseHandler.h +++ b/intern/iksolver/test/ik_glut_test/intern/MyGlutMouseHandler.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef NAN_INCLUDED_MyGlutMouseHandler_h diff --git a/intern/iksolver/test/ik_glut_test/intern/main.cpp b/intern/iksolver/test/ik_glut_test/intern/main.cpp index 7f1cce80a7e..7372b3f1858 100644 --- a/intern/iksolver/test/ik_glut_test/intern/main.cpp +++ b/intern/iksolver/test/ik_glut_test/intern/main.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,38 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -/** - * $Id$ - * ***** BEGIN GPL/BL DUAL 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/memutil/CMakeLists.txt b/intern/memutil/CMakeLists.txt index a116ca8b721..ce7872a4f8f 100644 --- a/intern/memutil/CMakeLists.txt +++ b/intern/memutil/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC . ..) diff --git a/intern/memutil/MEM_Allocator.h b/intern/memutil/MEM_Allocator.h index 68712e45558..d5ae94cc6b8 100644 --- a/intern/memutil/MEM_Allocator.h +++ b/intern/memutil/MEM_Allocator.h @@ -1,14 +1,11 @@ /** * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -21,7 +18,7 @@ * * Contributor(s): Peter Schlaile 2005 * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __MEM_Allocator_h_included__ diff --git a/intern/memutil/MEM_CacheLimiter.h b/intern/memutil/MEM_CacheLimiter.h index 13fb6b23446..cada06ae523 100644 --- a/intern/memutil/MEM_CacheLimiter.h +++ b/intern/memutil/MEM_CacheLimiter.h @@ -1,14 +1,11 @@ /** * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -21,7 +18,7 @@ * * Contributor(s): Peter Schlaile 2005 * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __MEM_cache_limiter_h_included__ diff --git a/intern/memutil/MEM_CacheLimiterC-Api.h b/intern/memutil/MEM_CacheLimiterC-Api.h index f06acb5adea..21e249799f5 100644 --- a/intern/memutil/MEM_CacheLimiterC-Api.h +++ b/intern/memutil/MEM_CacheLimiterC-Api.h @@ -1,14 +1,11 @@ /** * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -21,7 +18,7 @@ * * Contributor(s): Peter Schlaile 2005 * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef __MEM_cache_limiter_c_api_h_included__ diff --git a/intern/memutil/MEM_NonCopyable.h b/intern/memutil/MEM_NonCopyable.h index e413c2ce28c..b517c54e378 100644 --- a/intern/memutil/MEM_NonCopyable.h +++ b/intern/memutil/MEM_NonCopyable.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file MEM_NonCopyable.h diff --git a/intern/memutil/MEM_RefCountPtr.h b/intern/memutil/MEM_RefCountPtr.h index 042c90fa0cb..0cfb0066ff7 100644 --- a/intern/memutil/MEM_RefCountPtr.h +++ b/intern/memutil/MEM_RefCountPtr.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file MEM_RefCountPtr.h diff --git a/intern/memutil/MEM_RefCounted.h b/intern/memutil/MEM_RefCounted.h index 239465cdf34..aed6d48271f 100644 --- a/intern/memutil/MEM_RefCounted.h +++ b/intern/memutil/MEM_RefCounted.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file MEM_RefCounted.h diff --git a/intern/memutil/MEM_RefCountedC-Api.h b/intern/memutil/MEM_RefCountedC-Api.h index f78194fe2f6..fbfb5498002 100644 --- a/intern/memutil/MEM_RefCountedC-Api.h +++ b/intern/memutil/MEM_RefCountedC-Api.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file MEM_RefCountedC-Api.h diff --git a/intern/memutil/MEM_SmartPtr.h b/intern/memutil/MEM_SmartPtr.h index 55bae151027..ad92cddbda5 100644 --- a/intern/memutil/MEM_SmartPtr.h +++ b/intern/memutil/MEM_SmartPtr.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** * @file MEM_SmartPtr.h diff --git a/intern/memutil/Makefile b/intern/memutil/Makefile index 57a8adc8e10..787ca4fd58f 100644 --- a/intern/memutil/Makefile +++ b/intern/memutil/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # memutil main makefile. # diff --git a/intern/memutil/intern/MEM_RefCountedC-Api.cpp b/intern/memutil/intern/MEM_RefCountedC-Api.cpp index 873b2c99a59..26822f84729 100644 --- a/intern/memutil/intern/MEM_RefCountedC-Api.cpp +++ b/intern/memutil/intern/MEM_RefCountedC-Api.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/memutil/intern/Makefile b/intern/memutil/intern/Makefile index 71ffa6fa7e4..b77c2310b75 100644 --- a/intern/memutil/intern/Makefile +++ b/intern/memutil/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # memutil intern Makefile # diff --git a/intern/moto/CMakeLists.txt b/intern/moto/CMakeLists.txt index 9004e4c435d..c916817dd0c 100644 --- a/intern/moto/CMakeLists.txt +++ b/intern/moto/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC include) diff --git a/intern/moto/Makefile b/intern/moto/Makefile index 0649719e92e..7bd7ea10abc 100644 --- a/intern/moto/Makefile +++ b/intern/moto/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # moto main makefile. # diff --git a/intern/moto/include/GEN_List.h b/intern/moto/include/GEN_List.h index 00fdbb85ad1..9eb3901a7d5 100644 --- a/intern/moto/include/GEN_List.h +++ b/intern/moto/include/GEN_List.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,38 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -/** - * $Id$ - * ***** BEGIN GPL/BL DUAL 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef GEN_LIST_H diff --git a/intern/moto/include/GEN_Map.h b/intern/moto/include/GEN_Map.h index 64a2c3cfc6e..db3335d6110 100644 --- a/intern/moto/include/GEN_Map.h +++ b/intern/moto/include/GEN_Map.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef GEN_MAP_H diff --git a/intern/moto/include/MT_CmMatrix4x4.h b/intern/moto/include/MT_CmMatrix4x4.h index 86858576abf..dc4f771dcba 100644 --- a/intern/moto/include/MT_CmMatrix4x4.h +++ b/intern/moto/include/MT_CmMatrix4x4.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef INCLUDED_MT_CmMatrix4x4 diff --git a/intern/moto/include/MT_Matrix3x3.h b/intern/moto/include/MT_Matrix3x3.h index 98851e73040..899a2731588 100644 --- a/intern/moto/include/MT_Matrix3x3.h +++ b/intern/moto/include/MT_Matrix3x3.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Matrix4x4.h b/intern/moto/include/MT_Matrix4x4.h index fc930055524..823541347b7 100644 --- a/intern/moto/include/MT_Matrix4x4.h +++ b/intern/moto/include/MT_Matrix4x4.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/moto/include/MT_MinMax.h b/intern/moto/include/MT_MinMax.h index 06f8a8d18c8..958108549ad 100644 --- a/intern/moto/include/MT_MinMax.h +++ b/intern/moto/include/MT_MinMax.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Optimize.h b/intern/moto/include/MT_Optimize.h index c09a9431a34..3e0b16fdb02 100644 --- a/intern/moto/include/MT_Optimize.h +++ b/intern/moto/include/MT_Optimize.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef GEN_OPTIMIZE_H diff --git a/intern/moto/include/MT_Plane3.h b/intern/moto/include/MT_Plane3.h index 5caf1c4c36e..62bce716dd7 100644 --- a/intern/moto/include/MT_Plane3.h +++ b/intern/moto/include/MT_Plane3.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef MT_PLANE3 diff --git a/intern/moto/include/MT_Point2.h b/intern/moto/include/MT_Point2.h index cc6819039fc..67372118954 100644 --- a/intern/moto/include/MT_Point2.h +++ b/intern/moto/include/MT_Point2.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Point3.h b/intern/moto/include/MT_Point3.h index 372718af312..b0ee1f5b8f4 100644 --- a/intern/moto/include/MT_Point3.h +++ b/intern/moto/include/MT_Point3.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Quaternion.h b/intern/moto/include/MT_Quaternion.h index 98046292982..c2226820066 100644 --- a/intern/moto/include/MT_Quaternion.h +++ b/intern/moto/include/MT_Quaternion.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Scalar.h b/intern/moto/include/MT_Scalar.h index 5cf9f76e592..c4128d50d77 100644 --- a/intern/moto/include/MT_Scalar.h +++ b/intern/moto/include/MT_Scalar.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Stream.h b/intern/moto/include/MT_Stream.h index 49378eceb18..238fdc5c9ee 100644 --- a/intern/moto/include/MT_Stream.h +++ b/intern/moto/include/MT_Stream.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef GEN_STREAM_H diff --git a/intern/moto/include/MT_Transform.h b/intern/moto/include/MT_Transform.h index ee5ae29dc41..438975f1f19 100644 --- a/intern/moto/include/MT_Transform.h +++ b/intern/moto/include/MT_Transform.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Tuple2.h b/intern/moto/include/MT_Tuple2.h index 84280bec50a..5d6a4ca42fb 100644 --- a/intern/moto/include/MT_Tuple2.h +++ b/intern/moto/include/MT_Tuple2.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Tuple3.h b/intern/moto/include/MT_Tuple3.h index 271e323aab5..1d33a2edaf4 100644 --- a/intern/moto/include/MT_Tuple3.h +++ b/intern/moto/include/MT_Tuple3.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Tuple4.h b/intern/moto/include/MT_Tuple4.h index 9a484dbedde..0a7986db3f6 100644 --- a/intern/moto/include/MT_Tuple4.h +++ b/intern/moto/include/MT_Tuple4.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Vector2.h b/intern/moto/include/MT_Vector2.h index 629d962a781..552c559cc28 100644 --- a/intern/moto/include/MT_Vector2.h +++ b/intern/moto/include/MT_Vector2.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Vector3.h b/intern/moto/include/MT_Vector3.h index c35a9d47234..2e94239c38b 100644 --- a/intern/moto/include/MT_Vector3.h +++ b/intern/moto/include/MT_Vector3.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_Vector4.h b/intern/moto/include/MT_Vector4.h index 5f1ee99d584..284b5bc95d9 100644 --- a/intern/moto/include/MT_Vector4.h +++ b/intern/moto/include/MT_Vector4.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/include/MT_assert.h b/intern/moto/include/MT_assert.h index 54aea403cda..22f6b6a555c 100644 --- a/intern/moto/include/MT_assert.h +++ b/intern/moto/include/MT_assert.h @@ -1,14 +1,11 @@ /** * $Id$ -* ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +* ***** 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. The Blender -* Foundation also sells licenses for use in proprietary software under -* the Blender License. See http://www.blender.org/BL/ for information -* about this. +* 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * -* ***** END GPL/BL DUAL LICENSE BLOCK ***** +* ***** END GPL LICENSE BLOCK ***** */ #ifndef MT_ASSERT_H diff --git a/intern/moto/include/MT_random.h b/intern/moto/include/MT_random.h index 8a578fa7d09..d7da546cf03 100644 --- a/intern/moto/include/MT_random.h +++ b/intern/moto/include/MT_random.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifndef MT_RANDOM_H diff --git a/intern/moto/include/NM_Scalar.h b/intern/moto/include/NM_Scalar.h index a15b187cab9..9e3b96cac1a 100644 --- a/intern/moto/include/NM_Scalar.h +++ b/intern/moto/include/NM_Scalar.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include diff --git a/intern/moto/intern/MT_Assert.cpp b/intern/moto/intern/MT_Assert.cpp index c16c43f2045..c71dc0eb7bf 100644 --- a/intern/moto/intern/MT_Assert.cpp +++ b/intern/moto/intern/MT_Assert.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #include diff --git a/intern/moto/intern/MT_CmMatrix4x4.cpp b/intern/moto/intern/MT_CmMatrix4x4.cpp index 64ff3512c7a..98e8d68ed06 100644 --- a/intern/moto/intern/MT_CmMatrix4x4.cpp +++ b/intern/moto/intern/MT_CmMatrix4x4.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,38 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -/** - * $Id$ - * ***** BEGIN GPL/BL DUAL 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/moto/intern/MT_Matrix3x3.cpp b/intern/moto/intern/MT_Matrix3x3.cpp index 61dcc3b2d02..d681141c099 100644 --- a/intern/moto/intern/MT_Matrix3x3.cpp +++ b/intern/moto/intern/MT_Matrix3x3.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/moto/intern/MT_Matrix4x4.cpp b/intern/moto/intern/MT_Matrix4x4.cpp index ff0ad3caba7..aac9c073a31 100644 --- a/intern/moto/intern/MT_Matrix4x4.cpp +++ b/intern/moto/intern/MT_Matrix4x4.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/moto/intern/MT_Plane3.cpp b/intern/moto/intern/MT_Plane3.cpp index 054b09a48cc..a2510476724 100644 --- a/intern/moto/intern/MT_Plane3.cpp +++ b/intern/moto/intern/MT_Plane3.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,38 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -/** - * $Id$ - * ***** BEGIN GPL/BL DUAL 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/moto/intern/MT_Point3.cpp b/intern/moto/intern/MT_Point3.cpp index 1c585ad5eb4..8a269cd8733 100644 --- a/intern/moto/intern/MT_Point3.cpp +++ b/intern/moto/intern/MT_Point3.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/moto/intern/MT_Quaternion.cpp b/intern/moto/intern/MT_Quaternion.cpp index 6dd08ad484f..02fcefff228 100644 --- a/intern/moto/intern/MT_Quaternion.cpp +++ b/intern/moto/intern/MT_Quaternion.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/moto/intern/MT_Transform.cpp b/intern/moto/intern/MT_Transform.cpp index 1af52abca3b..a6b9211b389 100644 --- a/intern/moto/intern/MT_Transform.cpp +++ b/intern/moto/intern/MT_Transform.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* diff --git a/intern/moto/intern/MT_Vector2.cpp b/intern/moto/intern/MT_Vector2.cpp index c8ac08210e5..c89343db1c3 100644 --- a/intern/moto/intern/MT_Vector2.cpp +++ b/intern/moto/intern/MT_Vector2.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/moto/intern/MT_Vector3.cpp b/intern/moto/intern/MT_Vector3.cpp index 9285f2fcb19..654b95881d1 100644 --- a/intern/moto/intern/MT_Vector3.cpp +++ b/intern/moto/intern/MT_Vector3.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/moto/intern/MT_Vector4.cpp b/intern/moto/intern/MT_Vector4.cpp index efe7d3e7b04..b083f80b2f2 100644 --- a/intern/moto/intern/MT_Vector4.cpp +++ b/intern/moto/intern/MT_Vector4.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ #ifdef HAVE_CONFIG_H diff --git a/intern/moto/intern/MT_random.cpp b/intern/moto/intern/MT_random.cpp index 0c46211c3e8..96cb394d3da 100644 --- a/intern/moto/intern/MT_random.cpp +++ b/intern/moto/intern/MT_random.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /* A C-program for MT19937: Real number version */ diff --git a/intern/moto/intern/Makefile b/intern/moto/intern/Makefile index eeba381ab2a..a867fcadf96 100644 --- a/intern/moto/intern/Makefile +++ b/intern/moto/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # moto intern Makefile # diff --git a/intern/opennl/CMakeLists.txt b/intern/opennl/CMakeLists.txt index 78e2359eec5..07846289d63 100644 --- a/intern/opennl/CMakeLists.txt +++ b/intern/opennl/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC extern superlu) diff --git a/intern/opennl/Makefile b/intern/opennl/Makefile index 8aa0d4f590b..a84fd135d1d 100644 --- a/intern/opennl/Makefile +++ b/intern/opennl/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # opennl main makefile. # diff --git a/intern/opennl/intern/Makefile b/intern/opennl/intern/Makefile index 2e57905d931..04b158aaec0 100644 --- a/intern/opennl/intern/Makefile +++ b/intern/opennl/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # opennl intern Makefile # diff --git a/intern/opennl/superlu/Makefile b/intern/opennl/superlu/Makefile index 942ceebc79c..46b1066a676 100644 --- a/intern/opennl/superlu/Makefile +++ b/intern/opennl/superlu/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # opennl intern Makefile # diff --git a/intern/string/CMakeLists.txt b/intern/string/CMakeLists.txt index bee946d3c15..e92a9f976c2 100644 --- a/intern/string/CMakeLists.txt +++ b/intern/string/CMakeLists.txt @@ -1,13 +1,10 @@ # $Id$ -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -25,7 +22,7 @@ # # Contributor(s): Jacques Beaurain. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** SET(INC .) diff --git a/intern/string/Makefile b/intern/string/Makefile index e3dffbe9e44..e885b87babe 100644 --- a/intern/string/Makefile +++ b/intern/string/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): Hans Lambermont # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # string main makefile. # diff --git a/intern/string/STR_HashedString.h b/intern/string/STR_HashedString.h index bf18a4e4da6..b052e92f1fe 100644 --- a/intern/string/STR_HashedString.h +++ b/intern/string/STR_HashedString.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/string/STR_String.h b/intern/string/STR_String.h index 7b02e6c1855..ec945c80c7c 100644 --- a/intern/string/STR_String.h +++ b/intern/string/STR_String.h @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** diff --git a/intern/string/intern/Makefile b/intern/string/intern/Makefile index 925cdfed54a..4a461fb03b3 100644 --- a/intern/string/intern/Makefile +++ b/intern/string/intern/Makefile @@ -1,15 +1,12 @@ # # $Id$ # -# ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** +# ***** 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. The Blender -# Foundation also sells licenses for use in proprietary software under -# the Blender License. See http://www.blender.org/BL/ for information -# about this. +# 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 @@ -27,7 +24,7 @@ # # Contributor(s): none yet. # -# ***** END GPL/BL DUAL LICENSE BLOCK ***** +# ***** END GPL LICENSE BLOCK ***** # string intern Makefile # diff --git a/intern/string/intern/STR_String.cpp b/intern/string/intern/STR_String.cpp index af8f0d11445..dcc52e2a3e7 100644 --- a/intern/string/intern/STR_String.cpp +++ b/intern/string/intern/STR_String.cpp @@ -1,14 +1,11 @@ /** * $Id$ - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * ***** 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. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. + * 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 @@ -26,7 +23,7 @@ * * Contributor(s): none yet. * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * ***** END GPL LICENSE BLOCK ***** */ /** -- cgit v1.2.3 From 2318e47ae90558e5929db9bf1166f358e67c5c69 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Fri, 18 Apr 2008 14:12:42 +0000 Subject: Fluid bugfix [#8395] [#6200]: this should solve the popping/inconsistency/flickering issue with fluids, please give feedback :) --- intern/elbeem/intern/solver_util.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/intern/solver_util.cpp b/intern/elbeem/intern/solver_util.cpp index a6685babe68..ef98b7f21d0 100644 --- a/intern/elbeem/intern/solver_util.cpp +++ b/intern/elbeem/intern/solver_util.cpp @@ -112,7 +112,8 @@ void LbmFsgrSolver::prepareVisualization( void ) { const CellFlagType nbflag = RFLAG_NB(lev, i,j,k, workSet,l); if(nbflag&CFInter){ intercnt++; } - if(l!=mainGravDir) continue; // only check bnd along main grav. dir + // check all directions otherwise we get bugs with splashes on obstacles + // if(l!=mainGravDir) continue; // only check bnd along main grav. dir //if((nbflag&CFBnd)&&(nbflag&CFBndNoslip)){ noslipbnd=1; } if((nbflag&CFBnd)){ noslipbnd=1; } } @@ -140,11 +141,10 @@ void LbmFsgrSolver::prepareVisualization( void ) { if(vallbmGetData(i,j,ZKOFF) += minval-( val * mIsoWeight[13] ); } -#endif // SURFACE_ENH>0 - } else { // all others, unused? continue; } +#endif // SURFACE_ENH>0 *mpIso->lbmGetData( i-1 , j-1 ,ZKOFF-ZKD1) += ( val * mIsoWeight[0] ); *mpIso->lbmGetData( i , j-1 ,ZKOFF-ZKD1) += ( val * mIsoWeight[1] ); -- cgit v1.2.3 From 4147a5a33d57178914227a45ddd1afb1746cdc49 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Fri, 18 Apr 2008 18:25:11 +0000 Subject: Fluid: got to the real problem of the issue --> wrong float epsilon resulted in normalizing a vector to fail, reverted other change from today --- intern/elbeem/intern/ntl_vector3dim.h | 6 +++--- intern/elbeem/intern/solver_util.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/intern/ntl_vector3dim.h b/intern/elbeem/intern/ntl_vector3dim.h index 27c3be0d71f..35a3ad59ec9 100644 --- a/intern/elbeem/intern/ntl_vector3dim.h +++ b/intern/elbeem/intern/ntl_vector3dim.h @@ -825,7 +825,7 @@ template inline ntlColor vec2Col(T v) { return ntlColor(v[0],v[1],v[2]) #endif #endif #endif - + #if GFX_PRECISION==1 typedef float gfxReal; #define GFX_REAL_MAX __FLT_MAX__ @@ -833,7 +833,7 @@ typedef float gfxReal; //#define vecGfx2F(x) (x) //#define vecD2Gfx(x) vecD2F(x) //#define vecGfx2D(x) vecF2D(x) -#define VECTOR_EPSILON (1e-5f) +#define VECTOR_EPSILON (1.192092896e-07F) #else typedef double gfxReal; #define GFX_REAL_MAX __DBL_MAX__ @@ -841,7 +841,7 @@ typedef double gfxReal; //#define vecGfx2F(x) vecF2D(x) //#define vecD2Gfx(x) (x) //#define vecGfx2D(x) (x) -#define VECTOR_EPSILON (1e-10) +#define VECTOR_EPSILON (2.2204460492503131e-016) #endif /* fixed double prec. type, for epxlicitly double values */ diff --git a/intern/elbeem/intern/solver_util.cpp b/intern/elbeem/intern/solver_util.cpp index ef98b7f21d0..e74875a0dbf 100644 --- a/intern/elbeem/intern/solver_util.cpp +++ b/intern/elbeem/intern/solver_util.cpp @@ -37,10 +37,10 @@ void LbmFsgrSolver::prepareVisualization( void ) { int lev = mMaxRefine; int workSet = mLevel[lev].setCurr; - int mainGravDir=0; + int mainGravDir=6; // if normalizing fails, we asume z-direction gravity LbmFloat mainGravLen = 0.; FORDF1{ - LbmFloat thisGravLen = dot(LbmVec(dfVecX[l],dfVecY[l],dfVecZ[l]), getNormalized(mLevel[mMaxRefine].gravity) ); + LbmFloat thisGravLen = dot(LbmVec(dfVecX[l],dfVecY[l],dfVecZ[l]), getNormalized(mLevel[mMaxRefine].gravity) ); if(thisGravLen>mainGravLen) { mainGravLen = thisGravLen; mainGravDir = l; @@ -113,7 +113,7 @@ void LbmFsgrSolver::prepareVisualization( void ) { if(nbflag&CFInter){ intercnt++; } // check all directions otherwise we get bugs with splashes on obstacles - // if(l!=mainGravDir) continue; // only check bnd along main grav. dir + if(l!=mainGravDir) continue; // only check bnd along main grav. dir //if((nbflag&CFBnd)&&(nbflag&CFBndNoslip)){ noslipbnd=1; } if((nbflag&CFBnd)){ noslipbnd=1; } } -- cgit v1.2.3 From b43f24a9445faa5775057dab441877fc4627dfde Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 20 Apr 2008 09:57:28 +0000 Subject: Reverting new epsilons since they had bad global impact - instead just remove the problematic normalize() call --- intern/elbeem/intern/ntl_vector3dim.h | 4 ++-- intern/elbeem/intern/solver_util.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/intern/ntl_vector3dim.h b/intern/elbeem/intern/ntl_vector3dim.h index 35a3ad59ec9..6f17f9f5e7b 100644 --- a/intern/elbeem/intern/ntl_vector3dim.h +++ b/intern/elbeem/intern/ntl_vector3dim.h @@ -833,7 +833,7 @@ typedef float gfxReal; //#define vecGfx2F(x) (x) //#define vecD2Gfx(x) vecD2F(x) //#define vecGfx2D(x) vecF2D(x) -#define VECTOR_EPSILON (1.192092896e-07F) +#define VECTOR_EPSILON (1e-5f) #else typedef double gfxReal; #define GFX_REAL_MAX __DBL_MAX__ @@ -841,7 +841,7 @@ typedef double gfxReal; //#define vecGfx2F(x) vecF2D(x) //#define vecD2Gfx(x) (x) //#define vecGfx2D(x) (x) -#define VECTOR_EPSILON (2.2204460492503131e-016) +#define VECTOR_EPSILON (1e-10) #endif /* fixed double prec. type, for epxlicitly double values */ diff --git a/intern/elbeem/intern/solver_util.cpp b/intern/elbeem/intern/solver_util.cpp index e74875a0dbf..25b8b98b3c6 100644 --- a/intern/elbeem/intern/solver_util.cpp +++ b/intern/elbeem/intern/solver_util.cpp @@ -40,7 +40,7 @@ void LbmFsgrSolver::prepareVisualization( void ) { int mainGravDir=6; // if normalizing fails, we asume z-direction gravity LbmFloat mainGravLen = 0.; FORDF1{ - LbmFloat thisGravLen = dot(LbmVec(dfVecX[l],dfVecY[l],dfVecZ[l]), getNormalized(mLevel[mMaxRefine].gravity) ); + LbmFloat thisGravLen = dot(LbmVec(dfVecX[l],dfVecY[l],dfVecZ[l]), mLevel[mMaxRefine].gravity ); if(thisGravLen>mainGravLen) { mainGravLen = thisGravLen; mainGravDir = l; -- cgit v1.2.3 From 6672bb16cf9a8cc6ab7820bf30517cf6fefde1cf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 22 Apr 2008 14:32:45 +0000 Subject: use detectable autorepeat for X11, this way, holding a key will only give multiple down events, father then down,up,down,up.... etc. This is needed for apricot so they can play games in blenders :) --- intern/ghost/intern/GHOST_SystemX11.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index d6868d143dd..ff1bf51bbb5 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -46,6 +46,7 @@ #include #include +#include /* allow detectable autorepeate */ #ifdef __sgi @@ -111,6 +112,18 @@ GHOST_SystemX11( } m_start_time = GHOST_TUns64(tv.tv_sec*1000 + tv.tv_usec/1000); + + + /* use detectable autorepeate, mac and windows also do this */ + int use_xkb; + int xkb_opcode, xkb_event, xkb_error; + int xkb_major = XkbMajorVersion, xkb_minor = XkbMinorVersion; + + use_xkb = XkbQueryExtension(m_display, &xkb_opcode, &xkb_event, &xkb_error, &xkb_major, &xkb_minor); + if (use_xkb) { + XkbSetDetectableAutoRepeat(m_display, true, NULL); + } + } GHOST_TSuccess -- cgit v1.2.3 From e7c3ff64584a68e39c7273026b6504e2fa4ced44 Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Tue, 29 Apr 2008 18:41:34 +0000 Subject: == mmap for win32 == replacement for mmap/munmap on Windows. Implemented using CreateFileMapping/MapViewOfFile. --- intern/guardedalloc/intern/mallocn.c | 9 +- intern/guardedalloc/intern/mmap_win.c | 261 +++++++++++++++++++++ .../guardedalloc/make/msvc_7_0/guardedalloc.vcproj | 10 + intern/guardedalloc/mmap_win.h | 52 ++++ 4 files changed, 329 insertions(+), 3 deletions(-) create mode 100644 intern/guardedalloc/intern/mmap_win.c create mode 100644 intern/guardedalloc/mmap_win.h (limited to 'intern') diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index f95d9aa418a..25f2fd8d269 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -38,7 +38,10 @@ #include /* mmap exception */ -#if defined(AMIGA) || defined(__BeOS) || defined(WIN32) +#if defined(AMIGA) || defined(__BeOS) +#elif defined(WIN32) +#include +#include "mmap_win.h" #else #include #include @@ -289,7 +292,7 @@ void *MEM_callocN(unsigned int len, const char *str) /* note; mmap returns zero'd memory */ void *MEM_mapallocN(unsigned int len, const char *str) { -#if defined(AMIGA) || defined(__BeOS) || defined(WIN32) +#if defined(AMIGA) || defined(__BeOS) return MEM_callocN(len, str); #else MemHead *memh; @@ -586,7 +589,7 @@ static void rem_memblock(MemHead *memh) totblock--; mem_in_use -= memh->len; -#if defined(AMIGA) || defined(__BeOS) || defined(WIN32) +#if defined(AMIGA) || defined(__BeOS) free(memh); #else diff --git a/intern/guardedalloc/intern/mmap_win.c b/intern/guardedalloc/intern/mmap_win.c new file mode 100644 index 00000000000..cc31cf5174e --- /dev/null +++ b/intern/guardedalloc/intern/mmap_win.c @@ -0,0 +1,261 @@ +/** + * $Id: $ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2008 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Andrea Weikert. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#if defined(WIN32) + +#include +#include +#include +#include +#include + +#include "mmap_win.h" + +#ifndef FILE_MAP_EXECUTE +//not defined in earlier versions of the Platform SDK (before February 2003) +#define FILE_MAP_EXECUTE 0x0020 +#endif + +/* --------------------------------------------------------------------- */ +/* local storage definitions */ +/* --------------------------------------------------------------------- */ +/* all memory mapped chunks are put in linked lists */ +typedef struct mmapLink +{ + struct mmapLink *next,*prev; +} mmapLink; + +typedef struct mmapListBase +{ + void *first, *last; +} mmapListBase; + +typedef struct MemMap { + struct MemMap *next,*prev; + void *mmap; + HANDLE fhandle; + HANDLE maphandle; +} MemMap; + +/* --------------------------------------------------------------------- */ +/* local functions */ +/* --------------------------------------------------------------------- */ + +static void mmap_addtail(volatile mmapListBase *listbase, void *vlink); +static void mmap_remlink(volatile mmapListBase *listbase, void *vlink); +static void *mmap_findlink(volatile mmapListBase *listbase, void *ptr); + +static int mmap_get_prot_flags (int flags); +static int mmap_get_access_flags (int flags); + +/* --------------------------------------------------------------------- */ +/* vars */ +/* --------------------------------------------------------------------- */ +volatile static struct mmapListBase _mmapbase; +volatile static struct mmapListBase *mmapbase = &_mmapbase; + + +/* --------------------------------------------------------------------- */ +/* implementation */ +/* --------------------------------------------------------------------- */ + +/* mmap for windows */ +void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t offset) +{ + HANDLE fhandle = INVALID_HANDLE_VALUE; + HANDLE maphandle; + int prot_flags = mmap_get_prot_flags(prot); + int access_flags = mmap_get_access_flags(prot); + MemMap *mm = NULL; + void *ptr = NULL; + + if ( flags & MAP_FIXED ) { + return MAP_FAILED; + } + + /* + if ( fd == -1 ) { + _set_errno( EBADF ); + return MAP_FAILED; + } + */ + + if ( fd != -1 ) { + fhandle = (HANDLE) _get_osfhandle (fd); + } + if ( fhandle == INVALID_HANDLE_VALUE ) { + if (!(flags & MAP_ANONYMOUS)) { + errno = EBADF; + return MAP_FAILED; + } + } else { + if ( !DuplicateHandle( GetCurrentProcess(), fhandle, GetCurrentProcess(), + &fhandle, 0, FALSE, DUPLICATE_SAME_ACCESS ) ) { + return MAP_FAILED; + } + } + + maphandle = CreateFileMapping(fhandle, NULL, prot_flags, 0, len, NULL); + if ( maphandle == 0 ) { + errno = EBADF; + return MAP_FAILED; + } + + ptr = MapViewOfFile(maphandle, access_flags, 0, offset, 0); + if ( ptr == NULL ) { + DWORD dwLastErr = GetLastError(); + if ( dwLastErr == ERROR_MAPPED_ALIGNMENT ) + errno=EINVAL; + else + errno=EACCES; + CloseHandle(maphandle); + return MAP_FAILED; + } + + mm= (MemMap *)malloc(sizeof(MemMap)); + if (!mm) { + errno=ENOMEM; + } + mm->fhandle = fhandle; + mm->maphandle = maphandle; + mm->mmap = ptr; + mmap_addtail(mmapbase, mm); + + return ptr; +} + +/* munmap for windows */ +long munmap(void *ptr, long size) +{ + MemMap *mm = mmap_findlink(mmapbase, ptr); + if (!mm) { + errno=EINVAL; + return -1; + } + UnmapViewOfFile( mm->mmap ); + CloseHandle( mm->maphandle ); + CloseHandle( mm->fhandle); + mmap_remlink(mmapbase, mm); + return 0; +} + +/* --------------------------------------------------------------------- */ +/* local functions */ +/* --------------------------------------------------------------------- */ + +static void mmap_addtail(volatile mmapListBase *listbase, void *vlink) +{ + struct mmapLink *link= vlink; + + if (link == 0) return; + if (listbase == 0) return; + + link->next = 0; + link->prev = listbase->last; + + if (listbase->last) ((struct mmapLink *)listbase->last)->next = link; + if (listbase->first == 0) listbase->first = link; + listbase->last = link; +} + +static void mmap_remlink(volatile mmapListBase *listbase, void *vlink) +{ + struct mmapLink *link= vlink; + + if (link == 0) return; + if (listbase == 0) return; + + if (link->next) link->next->prev = link->prev; + if (link->prev) link->prev->next = link->next; + + if (listbase->last == link) listbase->last = link->prev; + if (listbase->first == link) listbase->first = link->next; +} + +static void *mmap_findlink(volatile mmapListBase *listbase, void *ptr) +{ + MemMap *mmap_ptr = (MemMap*)ptr; + MemMap *mm; + + if (ptr == 0) return NULL; + if (listbase == 0) return NULL; + + mm = (MemMap *)listbase->first; + while (mm) { + if (mm->mmap == ptr) { + return mm; + } + mm = mm->next; + } + return NULL; +} + +static int mmap_get_prot_flags (int flags) +{ + int prot = PAGE_NOACCESS; + + if ( ( flags & PROT_READ ) == PROT_READ ) { + if ( ( flags & PROT_WRITE ) == PROT_WRITE ) { + prot = (flags & PROT_EXEC) ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE; + } else { + prot = (flags & PROT_EXEC) ? PAGE_EXECUTE_READ : PAGE_READONLY; + } + } else if ( ( flags & PROT_WRITE ) == PROT_WRITE ) { + prot = (flags & PROT_EXEC) ? PAGE_EXECUTE_READ : PAGE_WRITECOPY; + } else if ( ( flags & PROT_EXEC ) == PROT_EXEC ) { + prot = PAGE_EXECUTE_READ; + } + return prot; +} + +static int mmap_get_access_flags (int flags) +{ + int access = 0; + + if ( ( flags & PROT_READ ) == PROT_READ ) { + if ( ( flags & PROT_WRITE ) == PROT_WRITE ) { + access = FILE_MAP_WRITE; + } else { + access = (flags & PROT_EXEC) ? FILE_MAP_EXECUTE : FILE_MAP_READ; + } + } else if ( ( flags & PROT_WRITE ) == PROT_WRITE ) { + access = FILE_MAP_COPY; + } else if ( ( flags & PROT_EXEC ) == PROT_EXEC ) { + access = FILE_MAP_EXECUTE; + } + return access; +} + + +#endif // WIN32 + + + + + diff --git a/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj b/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj index cb3490716fa..40e88511d5d 100644 --- a/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj +++ b/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj @@ -251,6 +251,9 @@ ECHO Done + + + + + + diff --git a/intern/guardedalloc/mmap_win.h b/intern/guardedalloc/mmap_win.h new file mode 100644 index 00000000000..f83a2d64b18 --- /dev/null +++ b/intern/guardedalloc/mmap_win.h @@ -0,0 +1,52 @@ +/** + * $Id: $ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2008 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Andrea Weikert. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef MMAP_WIN_H +#define MMAP_WIN_H + +#define PROT_NONE 0 +#define PROT_READ 1 +#define PROT_WRITE 2 +#define PROT_EXEC 4 + +#define MAP_FILE 0 +#define MAP_SHARED 1 +#define MAP_PRIVATE 2 +#define MAP_TYPE 0xF +#define MAP_FIXED 0x10 +#define MAP_ANONYMOUS 0x20 +#define MAP_ANON MAP_ANONYMOUS + +#define MAP_FAILED ((void *)-1) + +void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t offset); +long munmap(void *ptr, long size); + +#endif + -- cgit v1.2.3 From 273829de619cf778c78a0182abed3713fa1dfd70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Fri, 2 May 2008 10:38:50 +0000 Subject: fix for #10080 copy/paste operations were broken after first on os X --- intern/ghost/intern/GHOST_SystemCarbon.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp index 568f7ecf9b8..844dbc04233 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.cpp +++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp @@ -34,10 +34,9 @@ * @date May 7, 2001 */ -#ifdef HAVE_CONFIG_H -#include -#endif +#include +#include #include "GHOST_SystemCarbon.h" #include "GHOST_DisplayManagerCarbon.h" @@ -52,6 +51,7 @@ #include "GHOST_WindowManager.h" #include "GHOST_WindowCarbon.h" #include "GHOST_NDOFManager.h" +#include "AssertMacros.h" #define GHOST_KEY_SWITCH(mac, ghost) { case (mac): ghostKey = (ghost); break; } @@ -1121,12 +1121,15 @@ GHOST_TUns8* GHOST_SystemCarbon::getClipboard(int flag) const OSStatus err = noErr; GHOST_TUns8 * temp_buff; CFRange range; + OSStatus syncFlags; err = PasteboardCreate(kPasteboardClipboard, &inPasteboard); if(err != noErr) { return NULL;} - err = PasteboardSynchronize( inPasteboard ); - if(err != noErr) { return NULL;} + syncFlags = PasteboardSynchronize( inPasteboard ); + /* as we always get in a new string, we can safely ignore sync flags if not an error*/ + if(syncFlags <0) { return NULL;} + err = PasteboardGetItemIdentifier( inPasteboard, 1, &itemID ); if(err != noErr) { return NULL;} @@ -1152,15 +1155,19 @@ GHOST_TUns8* GHOST_SystemCarbon::getClipboard(int flag) const void GHOST_SystemCarbon::putClipboard(GHOST_TInt8 *buffer, int flag) const { if(flag == 1) {return;} //If Flag is 1 means the selection and is used on X11 + printf("flag %i string is %s \n",flag,buffer); + PasteboardRef inPasteboard; CFDataRef textData = NULL; OSStatus err = noErr; /*For error checking*/ + OSStatus syncFlags; err = PasteboardCreate(kPasteboardClipboard, &inPasteboard); if(err != noErr) { return;} - err = PasteboardSynchronize( inPasteboard ); - if(err != noErr) { return;} + syncFlags = PasteboardSynchronize( inPasteboard ); + /* as we always put in a new string, we can safely ignore sync flags */ + if(syncFlags <0) { return;} err = PasteboardClear( inPasteboard ); if(err != noErr) { return;} -- cgit v1.2.3 From ac634f565aa8a5d086eaf9142f066b25c2720352 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Fri, 2 May 2008 10:48:14 +0000 Subject: remove a debug print --- intern/ghost/intern/GHOST_SystemCarbon.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp index 844dbc04233..78c25997806 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.cpp +++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp @@ -1155,7 +1155,6 @@ GHOST_TUns8* GHOST_SystemCarbon::getClipboard(int flag) const void GHOST_SystemCarbon::putClipboard(GHOST_TInt8 *buffer, int flag) const { if(flag == 1) {return;} //If Flag is 1 means the selection and is used on X11 - printf("flag %i string is %s \n",flag,buffer); PasteboardRef inPasteboard; CFDataRef textData = NULL; -- cgit v1.2.3 From 360e2f091ea123ade3842219ddf5e204af4951ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Sun, 11 May 2008 13:33:27 +0000 Subject: protecting by #ifdef0 debug prints for ndof --- intern/ghost/intern/GHOST_NDOFManager.cpp | 2 ++ intern/ghost/intern/GHOST_System.cpp | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp index 6f3876c1d96..2426146184a 100644 --- a/intern/ghost/intern/GHOST_NDOFManager.cpp +++ b/intern/ghost/intern/GHOST_NDOFManager.cpp @@ -73,7 +73,9 @@ GHOST_NDOFManager::deviceOpen(GHOST_IWindow* window, if (ndofLibraryInit && ndofDeviceOpen) { Pid= ndofLibraryInit(); +#if 0 printf("%i client \n", Pid); +#endif #if defined(_WIN32) || defined(__APPLE__) m_DeviceHandle = ndofDeviceOpen((void *)¤tNdofValues); #else diff --git a/intern/ghost/intern/GHOST_System.cpp b/intern/ghost/intern/GHOST_System.cpp index 458a35bf34b..87e5f375958 100644 --- a/intern/ghost/intern/GHOST_System.cpp +++ b/intern/ghost/intern/GHOST_System.cpp @@ -283,9 +283,11 @@ GHOST_TSuccess GHOST_System::init() m_eventManager = new GHOST_EventManager (); m_ndofManager = new GHOST_NDOFManager(); +#if 0 if(m_ndofManager) printf("ndof manager \n"); - +#endif + #ifdef GHOST_DEBUG if (m_eventManager) { m_eventManager->addConsumer(&m_eventPrinter); -- cgit v1.2.3 From 31ec51df42b4401210202ff4d0c41ffa447d4732 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 25 May 2008 14:32:26 +0000 Subject: Apply BGE patch 12799: Fix quad buffer stereo mode for Windows --- intern/ghost/intern/GHOST_WindowWin32.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index 230df02c359..905b2f7ac63 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -871,12 +871,25 @@ static int EnumPixelFormats(HDC hdc) { for(i=1; i<=n; i++) { /* not the idiom, but it's right */ ::DescribePixelFormat( hdc, i, sizeof(PIXELFORMATDESCRIPTOR), &pfd ); w = WeightPixelFormat(pfd); - if(w > weight) { - weight = w; - iPixelFormat = i; + // be strict on stereo + if (!((sPreferredFormat.dwFlags ^ pfd.dwFlags) & PFD_STEREO)) { + if(w > weight) { + weight = w; + iPixelFormat = i; + } + } + } + if (weight == 0) { + // we could find the correct stereo setting, just find any suitable format + for(i=1; i<=n; i++) { /* not the idiom, but it's right */ + ::DescribePixelFormat( hdc, i, sizeof(PIXELFORMATDESCRIPTOR), &pfd ); + w = WeightPixelFormat(pfd); + if(w > weight) { + weight = w; + iPixelFormat = i; + } } } - return iPixelFormat; } -- cgit v1.2.3 From 86a0afb8295c2ba6560f8ceb9b35c873b614317e Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 2 Jun 2008 01:02:08 +0000 Subject: Compiler warning fixes (unused vars). Notes: - edgehash.c still has some weirdo code causing warnings on lines 80 and 117 i.e. if (v1 Date: Mon, 2 Jun 2008 21:35:57 +0000 Subject: == RED one (redcode) == This adds redcode (the file format of RED one, R3D) support to blender. Seems to work fine with the footage I found on the web, but keep in mind, that because of the unoptimized nature of libopenjpeg, frame decoding isn't that fast. It is also a rather challenging task, to make 4k-float-footage realtime :) --- intern/bsp/SConscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/bsp/SConscript b/intern/bsp/SConscript index e363fd1d4c3..88d2529ae59 100644 --- a/intern/bsp/SConscript +++ b/intern/bsp/SConscript @@ -8,5 +8,5 @@ incs = 'intern ../container ../moto/include ../memutil' if (env['OURPLATFORM'] == 'win32-mingw'): env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype=['common','intern'], priority=[26,26] ) else: - env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype='core', priority=15 ) + env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype='core', priority=26 ) -- cgit v1.2.3 From 10d59e720827660ab73801165c3c0925a27c5101 Mon Sep 17 00:00:00 2001 From: Ian Thompson Date: Mon, 9 Jun 2008 14:04:19 +0000 Subject: Merged from trunk svn merge -r14988:15170 https://svn.blender.org/svnroot/bf-blender/trunk/blender --- intern/bsp/SConscript | 2 +- intern/guardedalloc/intern/mmap_win.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/bsp/SConscript b/intern/bsp/SConscript index e363fd1d4c3..88d2529ae59 100644 --- a/intern/bsp/SConscript +++ b/intern/bsp/SConscript @@ -8,5 +8,5 @@ incs = 'intern ../container ../moto/include ../memutil' if (env['OURPLATFORM'] == 'win32-mingw'): env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype=['common','intern'], priority=[26,26] ) else: - env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype='core', priority=15 ) + env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype='core', priority=26 ) diff --git a/intern/guardedalloc/intern/mmap_win.c b/intern/guardedalloc/intern/mmap_win.c index cc31cf5174e..436c99344a7 100644 --- a/intern/guardedalloc/intern/mmap_win.c +++ b/intern/guardedalloc/intern/mmap_win.c @@ -200,7 +200,6 @@ static void mmap_remlink(volatile mmapListBase *listbase, void *vlink) static void *mmap_findlink(volatile mmapListBase *listbase, void *ptr) { - MemMap *mmap_ptr = (MemMap*)ptr; MemMap *mm; if (ptr == 0) return NULL; -- cgit v1.2.3 From 13d081c62c6014e30db719e558b2ad3ea000fd0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Luc=20Peuri=C3=A8re?= Date: Sat, 14 Jun 2008 18:57:42 +0000 Subject: fix for ndof inconsistencies, bug #13954 patch provided by Ettore Pasquini --- intern/ghost/intern/GHOST_SystemX11.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index ff1bf51bbb5..3003e0b8b14 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -488,12 +488,12 @@ GHOST_SystemX11::processEvent(XEvent *xe) data.changed = 1; data.delta = xcme.data.s[8] - data.time; data.time = xcme.data.s[8]; - data.tx = xcme.data.s[2]; - data.ty = xcme.data.s[3]; - data.tz = xcme.data.s[4]; + data.tx = xcme.data.s[2] >> 2; + data.ty = xcme.data.s[3] >> 2; + data.tz = xcme.data.s[4] >> 2; data.rx = xcme.data.s[5]; data.ry = xcme.data.s[6]; - data.rz = xcme.data.s[7]; + data.rz =-xcme.data.s[7]; g_event = new GHOST_EventNDOF(getMilliSeconds(), GHOST_kEventNDOFMotion, window, data); -- cgit v1.2.3 From d5f4b3620f19e816415fcf22dda6479d00986eea Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 29 Jun 2008 20:53:17 +0000 Subject: Fix for bug #8680: GameLogic.getRandomFloat() returns very small values on 64 bit, instead of range 0..1. Also a warning fix. --- intern/iksolver/intern/IK_QTask.h | 2 +- intern/moto/include/MT_random.h | 6 +++--- intern/moto/intern/MT_random.cpp | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) (limited to 'intern') diff --git a/intern/iksolver/intern/IK_QTask.h b/intern/iksolver/intern/IK_QTask.h index c291a0e7e50..4d469d737f8 100644 --- a/intern/iksolver/intern/IK_QTask.h +++ b/intern/iksolver/intern/IK_QTask.h @@ -74,7 +74,7 @@ public: virtual bool PositionTask() const { return false; } - virtual void Scale(float scale) {} + virtual void Scale(float) {} protected: int m_id; diff --git a/intern/moto/include/MT_random.h b/intern/moto/include/MT_random.h index d7da546cf03..3afe1dd1662 100644 --- a/intern/moto/include/MT_random.h +++ b/intern/moto/include/MT_random.h @@ -31,10 +31,10 @@ #include -#define MT_RAND_MAX ULONG_MAX +#define MT_RAND_MAX UINT_MAX -extern void MT_srand(unsigned long); -extern unsigned long MT_rand(); +extern void MT_srand(unsigned int); +extern unsigned int MT_rand(); #endif diff --git a/intern/moto/intern/MT_random.cpp b/intern/moto/intern/MT_random.cpp index 96cb394d3da..b8302e093ca 100644 --- a/intern/moto/intern/MT_random.cpp +++ b/intern/moto/intern/MT_random.cpp @@ -76,11 +76,11 @@ #define TEMPERING_SHIFT_T(y) (y << 15) #define TEMPERING_SHIFT_L(y) (y >> 18) -static unsigned long mt[N]; /* the array for the state vector */ +static unsigned int mt[N]; /* the array for the state vector */ static int mti = N+1; /* mti==N+1 means mt[N] is not initialized */ /* initializing the array with a NONZERO seed */ -void MT_srand(unsigned long seed) +void MT_srand(unsigned int seed) { /* setting initial seeds to mt[N] using */ /* the generator Line 25 of Table 1 in */ @@ -91,12 +91,12 @@ void MT_srand(unsigned long seed) mt[mti] = (69069 * mt[mti-1]) & 0xffffffff; } -unsigned long MT_rand() +unsigned int MT_rand() { - static unsigned long mag01[2] = { 0x0, MATRIX_A }; + static unsigned int mag01[2] = { 0x0, MATRIX_A }; /* mag01[x] = x * MATRIX_A for x=0,1 */ - unsigned long y; + unsigned int y; if (mti >= N) { /* generate N words at one time */ int kk; -- cgit v1.2.3 From baa1001b47c2c6ddcd87dd69af752259f33e431f Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Fri, 4 Jul 2008 15:23:21 +0000 Subject: Initial GUI implementation, yet not functional --- intern/elbeem/SConscript | 3 +- intern/elbeem/extern/elbeem.h | 3 + intern/elbeem/intern/elbeem.cpp | 6 +- intern/elbeem/intern/elbeem.h | 240 -------------------------------- intern/elbeem/intern/elbeem_control.cpp | 5 +- intern/elbeem/intern/elbeem_control.h | 2 +- intern/elbeem/intern/solver_control.cpp | 2 +- 7 files changed, 14 insertions(+), 247 deletions(-) delete mode 100644 intern/elbeem/intern/elbeem.h (limited to 'intern') diff --git a/intern/elbeem/SConscript b/intern/elbeem/SConscript index cea718ee737..5ee8da8a071 100644 --- a/intern/elbeem/SConscript +++ b/intern/elbeem/SConscript @@ -12,6 +12,7 @@ if env['WITH_BF_OPENMP'] == 1: if env['OURPLATFORM']=='win32-vc': defs += ' USE_MSVC6FIXES' -incs = env['BF_PNG_INC'] + ' ' + env['BF_ZLIB_INC'] + ' ' +env['BF_SDL_INC'] +incs = env['BF_PNG_INC'] + ' ' + env['BF_ZLIB_INC'] + ' ' +env['BF_SDL_INC'] +incs += ' extern ' env.BlenderLib ('bf_elbeem', sources, Split(incs), Split(defs), libtype='blender', priority=0 ) diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h index 2a594dd07e6..30ec4065b92 100644 --- a/intern/elbeem/extern/elbeem.h +++ b/intern/elbeem/extern/elbeem.h @@ -97,10 +97,13 @@ typedef struct elbeemSimulationSettings { // defines for elbeemMesh->type below +/* please keep in sync with DNA_object_fluidsim.h */ #define OB_FLUIDSIM_FLUID 4 #define OB_FLUIDSIM_OBSTACLE 8 #define OB_FLUIDSIM_INFLOW 16 #define OB_FLUIDSIM_OUTFLOW 32 +#define OB_FLUIDSIM_PARTICLE 64 +#define OB_FLUIDSIM_CONTROL 128 // defines for elbeemMesh->obstacleType below #define FLUIDSIM_OBSTACLE_NOSLIP 1 diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp index 23a447a3d64..d019c038df9 100644 --- a/intern/elbeem/intern/elbeem.cpp +++ b/intern/elbeem/intern/elbeem.cpp @@ -165,7 +165,7 @@ int globalMeshCounter = 1; // add mesh as fluidsim object extern "C" int elbeemAddMesh(elbeemMesh *mesh) { - int initType = -1; + int initType; if(getElbeemState() != SIMWORLD_INITIALIZING) { errFatal("elbeemAddMesh","World and domain not initialized, call elbeemInit and elbeemAddDomain before...", SIMWORLD_INITERROR); } switch(mesh->type) { @@ -177,9 +177,9 @@ int elbeemAddMesh(elbeemMesh *mesh) { case OB_FLUIDSIM_FLUID: initType = FGI_FLUID; break; case OB_FLUIDSIM_INFLOW: initType = FGI_MBNDINFLOW; break; case OB_FLUIDSIM_OUTFLOW: initType = FGI_MBNDOUTFLOW; break; + case OB_FLUIDSIM_CONTROL: initType = 0; break; // DG TODO: add correct time for fluid control object + default: return 1; // invalid type } - // invalid type? - if(initType<0) return 1; ntlGeometryObjModel *obj = new ntlGeometryObjModel( ); gpWorld->getRenderGlobals()->getSimScene()->addGeoClass( obj ); diff --git a/intern/elbeem/intern/elbeem.h b/intern/elbeem/intern/elbeem.h deleted file mode 100644 index 2a594dd07e6..00000000000 --- a/intern/elbeem/intern/elbeem.h +++ /dev/null @@ -1,240 +0,0 @@ -/****************************************************************************** - * - * El'Beem - Free Surface Fluid Simulation with the Lattice Boltzmann Method - * All code distributed as part of El'Beem is covered by the version 2 of the - * GNU General Public License. See the file COPYING for details. - * Copyright 2003-2006 Nils Thuerey - * - * API header - */ -#ifndef ELBEEM_API_H -#define ELBEEM_API_H - - -// simulation run callback function type (elbeemSimulationSettings->runsimCallback) -// best use with FLUIDSIM_CBxxx defines below. -// >parameters -// return values: 0=continue, 1=stop, 2=abort -// data pointer: user data pointer from elbeemSimulationSettings->runsimUserData -// status integer: 1=running simulation, 2=new frame saved -// frame integer: if status is 1, contains current frame number -typedef int (*elbeemRunSimulationCallback)(void *data, int status, int frame); -#define FLUIDSIM_CBRET_CONTINUE 0 -#define FLUIDSIM_CBRET_STOP 1 -#define FLUIDSIM_CBRET_ABORT 2 -#define FLUIDSIM_CBSTATUS_STEP 1 -#define FLUIDSIM_CBSTATUS_NEWFRAME 2 - - -// global settings for the simulation -typedef struct elbeemSimulationSettings { - /* version number */ - short version; - /* id number of simulation domain, needed if more than a - * single domain should be simulated */ - short domainId; - - /* geometrical extent */ - float geoStart[3], geoSize[3]; - - /* resolutions */ - short resolutionxyz; - short previewresxyz; - /* size of the domain in real units (meters along largest resolution x,y,z extent) */ - float realsize; - - /* fluid properties */ - double viscosity; - /* gravity strength */ - float gravity[3]; - /* anim start end time */ - float animStart, aniFrameTime; - /* no. of frames to simulate & output */ - short noOfFrames; - /* g star param (LBM compressibility) */ - float gstar; - /* activate refinement? */ - short maxRefine; - /* probability for surface particle generation (0.0=off) */ - float generateParticles; - /* amount of tracer particles to generate (0=off) */ - int numTracerParticles; - - /* store output path, and file prefix for baked fluid surface */ - char outputPath[160+80]; - - /* channel for frame time, visc & gravity animations */ - int channelSizeFrameTime; - float *channelFrameTime; - int channelSizeViscosity; - float *channelViscosity; - int channelSizeGravity; - float *channelGravity; // vector - - /* boundary types and settings for domain walls */ - short domainobsType; - float domainobsPartslip; - /* generate speed vectors for vertices (e.g. for image based motion blur)*/ - short generateVertexVectors; - /* strength of surface smoothing */ - float surfaceSmoothing; - /* no. of surface subdivisions */ - int surfaceSubdivs; - - /* global transformation to apply to fluidsim mesh */ - float surfaceTrafo[4*4]; - - /* development variables, testing for upcoming releases...*/ - float farFieldSize; - - /* callback function to notify calling program of performed simulation steps - * or newly available frame data, if NULL it is ignored */ - elbeemRunSimulationCallback runsimCallback; - /* pointer passed to runsimCallback for user data storage */ - void* runsimUserData; - -} elbeemSimulationSettings; - - -// defines for elbeemMesh->type below -#define OB_FLUIDSIM_FLUID 4 -#define OB_FLUIDSIM_OBSTACLE 8 -#define OB_FLUIDSIM_INFLOW 16 -#define OB_FLUIDSIM_OUTFLOW 32 - -// defines for elbeemMesh->obstacleType below -#define FLUIDSIM_OBSTACLE_NOSLIP 1 -#define FLUIDSIM_OBSTACLE_PARTSLIP 2 -#define FLUIDSIM_OBSTACLE_FREESLIP 3 - -#define OB_VOLUMEINIT_VOLUME 1 -#define OB_VOLUMEINIT_SHELL 2 -#define OB_VOLUMEINIT_BOTH (OB_VOLUMEINIT_SHELL|OB_VOLUMEINIT_VOLUME) - -// a single mesh object -typedef struct elbeemMesh { - /* obstacle,fluid or inflow... */ - short type; - /* id of simulation domain it belongs to */ - short parentDomainId; - - /* vertices */ - int numVertices; - float *vertices; // = float[n][3]; - /* animated vertices */ - int channelSizeVertices; - float *channelVertices; // = float[channelSizeVertices* (n*3+1) ]; - - /* triangles */ - int numTriangles; - int *triangles; // = int[][3]; - - /* animation channels */ - int channelSizeTranslation; - float *channelTranslation; - int channelSizeRotation; - float *channelRotation; - int channelSizeScale; - float *channelScale; - - /* active channel */ - int channelSizeActive; - float *channelActive; - /* initial velocity channel (e.g. for inflow) */ - int channelSizeInitialVel; - float *channelInitialVel; // vector - /* use initial velocity in object coordinates? (e.g. for rotation) */ - short localInivelCoords; - /* boundary types and settings */ - short obstacleType; - float obstaclePartslip; - /* amount of force transfer from fluid to obj, 0=off, 1=normal */ - float obstacleImpactFactor; - /* init volume, shell or both? use OB_VOLUMEINIT_xxx defines above */ - short volumeInitType; - - /* name of the mesh, mostly for debugging */ - const char *name; -} elbeemMesh; - -// API functions - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus - - -// reset elbeemSimulationSettings struct with defaults -void elbeemResetSettings(struct elbeemSimulationSettings*); - -// start fluidsim init (returns !=0 upon failure) -int elbeemInit(void); - -// start fluidsim init (returns !=0 upon failure) -int elbeemAddDomain(struct elbeemSimulationSettings*); - -// get failure message during simulation or init -// if an error occured (the string is copied into buffer, -// max. length = 256 chars ) -void elbeemGetErrorString(char *buffer); - -// reset elbeemMesh struct with zeroes -void elbeemResetMesh(struct elbeemMesh*); - -// add mesh as fluidsim object -int elbeemAddMesh(struct elbeemMesh*); - -// do the actual simulation -int elbeemSimulate(void); - -// continue a previously stopped simulation -int elbeemContinueSimulation(void); - - -// helper functions - -// simplify animation channels -// returns if the channel and its size changed -int elbeemSimplifyChannelFloat(float *channel, int *size); -int elbeemSimplifyChannelVec3(float *channel, int *size); - -// helper functions implemented in utilities.cpp - -/* set elbeem debug output level (0=off to 10=full on) */ -void elbeemSetDebugLevel(int level); -/* elbeem debug output function, prints if debug level >0 */ -void elbeemDebugOut(char *msg); - -/* estimate how much memory a given setup will require */ -double elbeemEstimateMemreq(int res, - float sx, float sy, float sz, - int refine, char *retstr); - - - -#ifdef __cplusplus -} -#endif // __cplusplus - - - -/******************************************************************************/ -// internal defines, do not use for initializing elbeemMesh -// structs, for these use OB_xxx defines above - -/*! fluid geometry init types */ -#define FGI_FLAGSTART 16 -#define FGI_FLUID (1<<(FGI_FLAGSTART+ 0)) -#define FGI_NO_FLUID (1<<(FGI_FLAGSTART+ 1)) -#define FGI_BNDNO (1<<(FGI_FLAGSTART+ 2)) -#define FGI_BNDFREE (1<<(FGI_FLAGSTART+ 3)) -#define FGI_BNDPART (1<<(FGI_FLAGSTART+ 4)) -#define FGI_NO_BND (1<<(FGI_FLAGSTART+ 5)) -#define FGI_MBNDINFLOW (1<<(FGI_FLAGSTART+ 6)) -#define FGI_MBNDOUTFLOW (1<<(FGI_FLAGSTART+ 7)) - -// all boundary types at once -#define FGI_ALLBOUNDS ( FGI_BNDNO | FGI_BNDFREE | FGI_BNDPART | FGI_MBNDINFLOW | FGI_MBNDOUTFLOW ) - - -#endif // ELBEEM_API_H diff --git a/intern/elbeem/intern/elbeem_control.cpp b/intern/elbeem/intern/elbeem_control.cpp index 272cfa6ec9d..800167baf73 100644 --- a/intern/elbeem/intern/elbeem_control.cpp +++ b/intern/elbeem/intern/elbeem_control.cpp @@ -13,10 +13,13 @@ // add mesh as fluidsim object int elbeemControlAddSet(struct elbeemControl*) { + return 0; } -int elbeemControlComputeMesh(struct elbeemMesh) { +int elbeemControlComputeMesh(struct elbeemMesh*) { + + return 0; } diff --git a/intern/elbeem/intern/elbeem_control.h b/intern/elbeem/intern/elbeem_control.h index 0d30835a224..70a58feda89 100644 --- a/intern/elbeem/intern/elbeem_control.h +++ b/intern/elbeem/intern/elbeem_control.h @@ -57,6 +57,6 @@ typedef struct elbeemControl { int elbeemControlAddSet(struct elbeemControl*); // sample & track mesh control particles, TODO add return type... -int elbeemControlComputeMesh(struct elbeemMesh); +int elbeemControlComputeMesh(struct elbeemMesh*); #endif // ELBEEMCONTROL_API_H diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp index 69f1682e253..d03e42af489 100644 --- a/intern/elbeem/intern/solver_control.cpp +++ b/intern/elbeem/intern/solver_control.cpp @@ -213,7 +213,7 @@ LbmFsgrSolver::initCpdata() //if( (getenv("ELBEEM_CPINFILE")) || (getenv("ELBEEM_CPOUTFILE")) ){ mUseTestdata=1; } // NT blender integration manual test setup - if(1) { + if(0) { // manually switch on! if this is zero, nothing is done... mpControl->mSetForceStrength = this->mTForceStrength = 1.; mpControl->mCons.clear(); -- cgit v1.2.3 From b3303c98b1143a20794189eb60007f659d96c7eb Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 6 Jul 2008 18:19:42 +0000 Subject: Another fluid type 'control' added and introduced to elbeem, still some issues to solve but with 1 change in fluidsim.c it kind of works already (hint for me - disabled for other people so they don't complain) --- intern/elbeem/extern/elbeem.h | 2 + intern/elbeem/intern/controlparticles.cpp | 121 ++++++++++++++++++++++++++++ intern/elbeem/intern/controlparticles.h | 4 + intern/elbeem/intern/elbeem.cpp | 2 +- intern/elbeem/intern/ntl_geometryobject.cpp | 7 +- intern/elbeem/intern/solver_control.cpp | 36 +++++++++ intern/elbeem/intern/solver_control.h | 2 + 7 files changed, 170 insertions(+), 4 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h index 30ec4065b92..2599432e8b8 100644 --- a/intern/elbeem/extern/elbeem.h +++ b/intern/elbeem/extern/elbeem.h @@ -226,6 +226,7 @@ double elbeemEstimateMemreq(int res, // structs, for these use OB_xxx defines above /*! fluid geometry init types */ +// type "int" used, so max is 8 #define FGI_FLAGSTART 16 #define FGI_FLUID (1<<(FGI_FLAGSTART+ 0)) #define FGI_NO_FLUID (1<<(FGI_FLAGSTART+ 1)) @@ -235,6 +236,7 @@ double elbeemEstimateMemreq(int res, #define FGI_NO_BND (1<<(FGI_FLAGSTART+ 5)) #define FGI_MBNDINFLOW (1<<(FGI_FLAGSTART+ 6)) #define FGI_MBNDOUTFLOW (1<<(FGI_FLAGSTART+ 7)) +#define FGI_CONTROL (1<<(FGI_FLAGSTART+ 8)) // all boundary types at once #define FGI_ALLBOUNDS ( FGI_BNDNO | FGI_BNDFREE | FGI_BNDPART | FGI_MBNDINFLOW | FGI_MBNDOUTFLOW ) diff --git a/intern/elbeem/intern/controlparticles.cpp b/intern/elbeem/intern/controlparticles.cpp index cab64d7a257..d1f11f3835c 100644 --- a/intern/elbeem/intern/controlparticles.cpp +++ b/intern/elbeem/intern/controlparticles.cpp @@ -57,6 +57,127 @@ void ControlParticles::initBlenderTest() { initTime(0. , 1.); } +int ControlParticles::initFromObject(ntlGeometryObjModel *model) { + vector triangles; + vector vertices; + vector normals; + + /* + model->loadBobjModel(string(infile)); + + model->setLoaded(true); + + model->setGeoInitId(gid); + */ + model->setGeoInitType(FGI_FLUID); + + model->getTriangles(mCPSTimeStart, &triangles, &vertices, &normals, 1 ); + + // valid mesh? + if(triangles.size() <= 0) { + return 0; + } + + ntlRenderGlobals *glob = new ntlRenderGlobals; + ntlScene *genscene = new ntlScene( glob, false ); + genscene->addGeoClass(model); + genscene->addGeoObject(model); + genscene->buildScene(0., false); + char treeFlag = (1<<(4+model->getGeoInitId())); + + ntlTree *tree = new ntlTree( + 15, 8, // TREEwarning - fixed values for depth & maxtriangles here... + genscene, treeFlag ); + + // TODO? use params + ntlVec3Gfx start,end; + model->getExtends(start,end); + + printf("start - x: %f, y: %f, z: %f\n", start[0], start[1], start[2]); + printf("end - x: %f, y: %f, z: %f\n", end[0], end[1], end[2]); + printf("mCPSWidth: %f\n"); + + LbmFloat width = mCPSWidth; + if(width<=LBM_EPSILON) { errMsg("ControlParticles::initFromMVMCMesh","Invalid mCPSWidth! "< inspos; + int approxmax = (int)( ((end[0]-start[0])/width)*((end[1]-start[1])/width)*((end[2]-start[2])/width) ); + + while(org[2] ninspos; + mvm.transfer(vertices, ninspos); + + // init first set, check dist + ControlParticleSet firstcps; //T + mPartSets.push_back(firstcps); + mPartSets[mPartSets.size()-1].time = (gfxReal)0.; + vector useCP; + + for(int i=0; i<(int)inspos.size(); i++) { + ControlParticle p; p.reset(); + p.pos = vec2L(inspos[i]); + + double cpdist = norm(inspos[i]-ninspos[i]); + bool usecpv = true; + + mPartSets[mPartSets.size()-1].particles.push_back(p); + useCP.push_back(usecpv); + } + + // init further sets, temporal mesh sampling + double tsampling = mCPSTimestep; + int totcnt = (int)( (mCPSTimeEnd-mCPSTimeStart)/tsampling ), tcnt=0; + for(double t=mCPSTimeStart+tsampling; ((t0.)); t+=tsampling) { + ControlParticleSet nextcps; //T + mPartSets.push_back(nextcps); + mPartSets[mPartSets.size()-1].time = (gfxReal)t; + + vertices.clear(); triangles.clear(); normals.clear(); + model->getTriangles(t, &triangles, &vertices, &normals, 1 ); + mvm.transfer(vertices, ninspos); + + tcnt++; + for(int i=0; i<(int)ninspos.size(); i++) { + + if(useCP[i]) { + ControlParticle p; p.reset(); + p.pos = vec2L(ninspos[i]); + mPartSets[mPartSets.size()-1].particles.push_back(p); + } + } + } + + // applyTrafos(); + + model->setGeoInitType(FGI_CONTROL); + + initTime(mCPSTimeStart , mCPSTimeEnd); + + delete tree; + delete genscene; + delete glob; + + return 1; +} + // init all zero / defaults for a single particle void ControlParticle::reset() { diff --git a/intern/elbeem/intern/controlparticles.h b/intern/elbeem/intern/controlparticles.h index 5b8683a4f7d..712dfc40273 100644 --- a/intern/elbeem/intern/controlparticles.h +++ b/intern/elbeem/intern/controlparticles.h @@ -13,6 +13,8 @@ #ifndef CONTROLPARTICLES_H #define CONTROLPARTICLES_H +#include "ntl_geometrymodel.h" + // indicator for LBM inclusion //#ifndef LBMDIM @@ -225,6 +227,8 @@ public: // blender test init void initBlenderTest(); + + int initFromObject(ntlGeometryObjModel *model); protected: // sets influence params diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp index d019c038df9..0a48a7a9826 100644 --- a/intern/elbeem/intern/elbeem.cpp +++ b/intern/elbeem/intern/elbeem.cpp @@ -177,7 +177,7 @@ int elbeemAddMesh(elbeemMesh *mesh) { case OB_FLUIDSIM_FLUID: initType = FGI_FLUID; break; case OB_FLUIDSIM_INFLOW: initType = FGI_MBNDINFLOW; break; case OB_FLUIDSIM_OUTFLOW: initType = FGI_MBNDOUTFLOW; break; - case OB_FLUIDSIM_CONTROL: initType = 0; break; // DG TODO: add correct time for fluid control object + case OB_FLUIDSIM_CONTROL: initType = FGI_CONTROL; break; default: return 1; // invalid type } diff --git a/intern/elbeem/intern/ntl_geometryobject.cpp b/intern/elbeem/intern/ntl_geometryobject.cpp index f2ebd572682..9861ce8edc9 100644 --- a/intern/elbeem/intern/ntl_geometryobject.cpp +++ b/intern/elbeem/intern/ntl_geometryobject.cpp @@ -82,20 +82,21 @@ bool ntlGeometryObject::checkIsAnimated() { /*****************************************************************************/ /* Init attributes etc. of this object */ /*****************************************************************************/ -#define GEOINIT_STRINGS 9 +#define GEOINIT_STRINGS 10 static const char *initStringStrs[GEOINIT_STRINGS] = { "fluid", "bnd_no","bnd_noslip", "bnd_free","bnd_freeslip", "bnd_part","bnd_partslip", - "inflow", "outflow" + "inflow", "outflow", "control", }; static int initStringTypes[GEOINIT_STRINGS] = { FGI_FLUID, FGI_BNDNO, FGI_BNDNO, FGI_BNDFREE, FGI_BNDFREE, FGI_BNDPART, FGI_BNDPART, - FGI_MBNDINFLOW, FGI_MBNDOUTFLOW + FGI_MBNDINFLOW, FGI_MBNDOUTFLOW, + FGI_CONTROL }; void ntlGeometryObject::initialize(ntlRenderGlobals *glob) { diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp index d03e42af489..c556cbf9a51 100644 --- a/intern/elbeem/intern/solver_control.cpp +++ b/intern/elbeem/intern/solver_control.cpp @@ -17,7 +17,9 @@ #include "controlparticles.h" +#include "elbeem.h" +#include "ntl_geometrymodel.h" /****************************************************************************** * LbmControlData control set @@ -212,6 +214,40 @@ LbmFsgrSolver::initCpdata() // enable for cps via env. vars //if( (getenv("ELBEEM_CPINFILE")) || (getenv("ELBEEM_CPOUTFILE")) ){ mUseTestdata=1; } + + // manually switch on! if this is zero, nothing is done... + mpControl->mSetForceStrength = this->mTForceStrength = 1.; + mpControl->mCons.clear(); + + // add new set + LbmControlSet *cset; + + cset = new LbmControlSet(); + cset->initCparts(); + + // dont load any file + cset->mContrPartFile = string(""); + + cset->mcForceAtt = AnimChannel(0.2); + cset->mcRadiusAtt = AnimChannel(0.75); + cset->mcForceVel = AnimChannel(0.2); + cset->mcRadiusVel = AnimChannel(0.75); + + // this value can be left at 0.5: + cset->mCparts->setCPSMvmWeightFac(0.5); + + mpControl->mCons.push_back( cset ); + + // init all control fluid objects + int numobjs = (int)(mpGiObjects->size()); + for(int o=0; ogetGeoInitType() & FGI_CONTROL) { + printf("added control object\n"); + mpControl->mCons[0]->mCparts->initFromObject(obj); + } + } + // NT blender integration manual test setup if(0) { // manually switch on! if this is zero, nothing is done... diff --git a/intern/elbeem/intern/solver_control.h b/intern/elbeem/intern/solver_control.h index ea4ae74e6a6..0f45d2133ff 100644 --- a/intern/elbeem/intern/solver_control.h +++ b/intern/elbeem/intern/solver_control.h @@ -46,6 +46,8 @@ class ControlForces; #include "controlparticles.h" +#include "ntl_geometrymodel.h" + // get force entry, set=0 is unused anyway #define LBMGET_FORCE(lev, i,j,k) mpControl->mCpForces[lev][ (LBMGI(lev,i,j,k,0)) ] -- cgit v1.2.3 From 7bbf88d602368733e66cf00b4f70947ef83b3b64 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 6 Jul 2008 21:55:03 +0000 Subject: Added 4 gui elements to structs, another 2-3 will follow; Unsolved problems: simulation and control time desync --- intern/elbeem/extern/elbeem.h | 9 ++++++- intern/elbeem/intern/controlparticles.cpp | 17 +++++++++--- intern/elbeem/intern/elbeem.cpp | 13 +++++++++ intern/elbeem/intern/ntl_geometryobject.cpp | 1 + intern/elbeem/intern/ntl_geometryobject.h | 30 ++++++++++++++++++++- intern/elbeem/intern/solver_control.cpp | 41 ++++++++++++++--------------- 6 files changed, 84 insertions(+), 27 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h index 2599432e8b8..5c1fc644827 100644 --- a/intern/elbeem/extern/elbeem.h +++ b/intern/elbeem/extern/elbeem.h @@ -116,7 +116,7 @@ typedef struct elbeemSimulationSettings { // a single mesh object typedef struct elbeemMesh { - /* obstacle,fluid or inflow... */ + /* obstacle,fluid or inflow or control ... */ short type; /* id of simulation domain it belongs to */ short parentDomainId; @@ -158,6 +158,13 @@ typedef struct elbeemMesh { /* name of the mesh, mostly for debugging */ const char *name; + + /* fluid control settings */ + // TODO dg: change to channels + float attractforceStrength; + float attractforceRadius; + float velocityforceStrength; + float velocityforceRadius; } elbeemMesh; // API functions diff --git a/intern/elbeem/intern/controlparticles.cpp b/intern/elbeem/intern/controlparticles.cpp index d1f11f3835c..70a94bb2d1a 100644 --- a/intern/elbeem/intern/controlparticles.cpp +++ b/intern/elbeem/intern/controlparticles.cpp @@ -68,10 +68,15 @@ int ControlParticles::initFromObject(ntlGeometryObjModel *model) { model->setLoaded(true); model->setGeoInitId(gid); + + + printf("a animated? %d\n", model->getIsAnimated()); + printf("b animated? %d\n", model->getMeshAnimated()); */ model->setGeoInitType(FGI_FLUID); model->getTriangles(mCPSTimeStart, &triangles, &vertices, &normals, 1 ); + // model->applyTransformation(mCPSTimeStart, &vertices, &normals, 0, vertices.size(), true); // valid mesh? if(triangles.size() <= 0) { @@ -92,11 +97,11 @@ int ControlParticles::initFromObject(ntlGeometryObjModel *model) { // TODO? use params ntlVec3Gfx start,end; model->getExtends(start,end); - + /* printf("start - x: %f, y: %f, z: %f\n", start[0], start[1], start[2]); printf("end - x: %f, y: %f, z: %f\n", end[0], end[1], end[2]); printf("mCPSWidth: %f\n"); - +*/ LbmFloat width = mCPSWidth; if(width<=LBM_EPSILON) { errMsg("ControlParticles::initFromMVMCMesh","Invalid mCPSWidth! "< inspos; int approxmax = (int)( ((end[0]-start[0])/width)*((end[1]-start[1])/width)*((end[2]-start[2])/width) ); + // printf("distance: %f, width: %f\n", distance, width); + while(org[2]0.)); t+=tsampling) { ControlParticleSet nextcps; //T @@ -164,8 +175,6 @@ int ControlParticles::initFromObject(ntlGeometryObjModel *model) { } } } - - // applyTrafos(); model->setGeoInitType(FGI_CONTROL); diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp index 0a48a7a9826..1d8f92b0744 100644 --- a/intern/elbeem/intern/elbeem.cpp +++ b/intern/elbeem/intern/elbeem.cpp @@ -159,6 +159,12 @@ void elbeemResetMesh(elbeemMesh *mesh) { /* name of the mesh, mostly for debugging */ mesh->name = "[unnamed]"; + + /* fluid control settings */ + mesh->attractforceStrength = 0; + mesh->attractforceRadius = 0; + mesh->velocityforceStrength = 0; + mesh->velocityforceRadius = 0; } int globalMeshCounter = 1; @@ -198,6 +204,13 @@ int elbeemAddMesh(elbeemMesh *mesh) { obj->setGeoInitType(initType); obj->setGeoPartSlipValue(mesh->obstaclePartslip); obj->setGeoImpactFactor(mesh->obstacleImpactFactor); + + /* fluid control features */ + obj->setAttractForceStrength(mesh->attractforceStrength); + obj->setAttractForceRadius(mesh->attractforceRadius); + obj->setVelocityForceStrength(mesh->velocityforceStrength); + obj->setVelocityForceRadius(mesh->velocityforceRadius); + if((mesh->volumeInitTypevolumeInitType>VOLUMEINIT_BOTH)) mesh->volumeInitType = VOLUMEINIT_VOLUME; obj->setVolumeInit(mesh->volumeInitType); // use channel instead, obj->setInitialVelocity( ntlVec3Gfx(mesh->iniVelocity[0], mesh->iniVelocity[1], mesh->iniVelocity[2]) ); diff --git a/intern/elbeem/intern/ntl_geometryobject.cpp b/intern/elbeem/intern/ntl_geometryobject.cpp index 9861ce8edc9..68735acaec1 100644 --- a/intern/elbeem/intern/ntl_geometryobject.cpp +++ b/intern/elbeem/intern/ntl_geometryobject.cpp @@ -346,6 +346,7 @@ void ntlGeometryObject::initChannels( if((ivel)&&(nIvel>0)) { ADD_CHANNEL_VEC(mcInitialVelocity, nIvel, ivel); } checkIsAnimated(); + if(debugInitc) { debMsgStd("ntlGeometryObject::initChannels",DM_MSG,getName()<< " nt:"< mcGeoActive; + + /* fluid control settings */ + // TODO dg: change to channels + float mAttractforceStrength; + float mAttractforceRadius; + float mVelocityforceStrength; + float mVelocityforceRadius; public: diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp index c556cbf9a51..e4c5158b615 100644 --- a/intern/elbeem/intern/solver_control.cpp +++ b/intern/elbeem/intern/solver_control.cpp @@ -218,33 +218,32 @@ LbmFsgrSolver::initCpdata() // manually switch on! if this is zero, nothing is done... mpControl->mSetForceStrength = this->mTForceStrength = 1.; mpControl->mCons.clear(); - - // add new set - LbmControlSet *cset; - - cset = new LbmControlSet(); - cset->initCparts(); - - // dont load any file - cset->mContrPartFile = string(""); - - cset->mcForceAtt = AnimChannel(0.2); - cset->mcRadiusAtt = AnimChannel(0.75); - cset->mcForceVel = AnimChannel(0.2); - cset->mcRadiusVel = AnimChannel(0.75); - - // this value can be left at 0.5: - cset->mCparts->setCPSMvmWeightFac(0.5); - - mpControl->mCons.push_back( cset ); // init all control fluid objects int numobjs = (int)(mpGiObjects->size()); for(int o=0; ogetGeoInitType() & FGI_CONTROL) { - printf("added control object\n"); - mpControl->mCons[0]->mCparts->initFromObject(obj); + // add new control set per object + LbmControlSet *cset; + + cset = new LbmControlSet(); + cset->initCparts(); + + // dont load any file + cset->mContrPartFile = string(""); + + // TODO dg: switch to channels later + cset->mcForceAtt = AnimChannel(obj->getAttractForceStrength()); + cset->mcRadiusAtt = AnimChannel(obj->getAttractForceRadius()); + cset->mcForceVel = AnimChannel(obj->getVelocityForceStrength()); + cset->mcRadiusVel = AnimChannel(obj->getVelocityForceRadius()); + + // this value can be left at 0.5: + cset->mCparts->setCPSMvmWeightFac(0.5); + + mpControl->mCons.push_back( cset ); + mpControl->mCons[mpControl->mCons.size()-1]->mCparts->initFromObject(obj); } } -- cgit v1.2.3 From d3745d70a507bef4dfeadec2d8bd8947e5f3d6c4 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 7 Jul 2008 09:23:12 +0000 Subject: Another addition of time values, yet some things to follow --- intern/elbeem/extern/elbeem.h | 3 +++ intern/elbeem/intern/elbeem.cpp | 5 +++++ intern/elbeem/intern/ntl_geometryobject.h | 11 +++++++++++ intern/elbeem/intern/solver_control.cpp | 3 +++ 4 files changed, 22 insertions(+) (limited to 'intern') diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h index 5c1fc644827..b8752efed80 100644 --- a/intern/elbeem/extern/elbeem.h +++ b/intern/elbeem/extern/elbeem.h @@ -160,6 +160,9 @@ typedef struct elbeemMesh { const char *name; /* fluid control settings */ + float cpsTimeStart; + float cpsTimeEnd; + // TODO dg: change to channels float attractforceStrength; float attractforceRadius; diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp index 1d8f92b0744..4517e20d89c 100644 --- a/intern/elbeem/intern/elbeem.cpp +++ b/intern/elbeem/intern/elbeem.cpp @@ -161,6 +161,9 @@ void elbeemResetMesh(elbeemMesh *mesh) { mesh->name = "[unnamed]"; /* fluid control settings */ + mesh->cpsTimeStart = 0; + mesh->cpsTimeEnd = 0; + mesh->attractforceStrength = 0; mesh->attractforceRadius = 0; mesh->velocityforceStrength = 0; @@ -206,6 +209,8 @@ int elbeemAddMesh(elbeemMesh *mesh) { obj->setGeoImpactFactor(mesh->obstacleImpactFactor); /* fluid control features */ + obj->setCpsTimeStart(mesh->cpsTimeStart); + obj->setCpsTimeEnd(mesh->cpsTimeEnd); obj->setAttractForceStrength(mesh->attractforceStrength); obj->setAttractForceRadius(mesh->attractforceRadius); obj->setVelocityForceStrength(mesh->velocityforceStrength); diff --git a/intern/elbeem/intern/ntl_geometryobject.h b/intern/elbeem/intern/ntl_geometryobject.h index fd7455a4787..6076610ea0f 100644 --- a/intern/elbeem/intern/ntl_geometryobject.h +++ b/intern/elbeem/intern/ntl_geometryobject.h @@ -101,6 +101,14 @@ class ntlGeometryObject : public ntlGeometryClass /****************************************/ /* fluid control features */ /****************************************/ + /*! Set/get the particle control set attract force strength */ + inline float getCpsTimeStart() const { return mCpsTimeStart; } + inline void setCpsTimeStart(float set) { mCpsTimeStart=set; } + + /*! Set/get the particle control set attract force strength */ + inline float getCpsTimeEnd() const { return mCpsTimeEnd; } + inline void setCpsTimeEnd(float set) { mCpsTimeEnd=set; } + /*! Set/get the particle control set attract force strength */ inline float getAttractForceStrength() const { return mAttractforceStrength; } inline void setAttractForceStrength(float set) { mAttractforceStrength=set; } @@ -225,6 +233,9 @@ class ntlGeometryObject : public ntlGeometryClass AnimChannel mcGeoActive; /* fluid control settings */ + float mCpsTimeStart; + float mCpsTimeEnd + ; // TODO dg: change to channels float mAttractforceStrength; float mAttractforceRadius; diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp index e4c5158b615..267a1c5268c 100644 --- a/intern/elbeem/intern/solver_control.cpp +++ b/intern/elbeem/intern/solver_control.cpp @@ -239,6 +239,9 @@ LbmFsgrSolver::initCpdata() cset->mcForceVel = AnimChannel(obj->getVelocityForceStrength()); cset->mcRadiusVel = AnimChannel(obj->getVelocityForceRadius()); + cset->mCparts->setCPSTimeStart(obj->getCpsTimeStart()); + cset->mCparts->setCPSTimeEnd(obj->getCpsTimeEnd()); + // this value can be left at 0.5: cset->mCparts->setCPSMvmWeightFac(0.5); -- cgit v1.2.3 From e409c2463d448fa79b86250b03ed7e07d09b067e Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 7 Jul 2008 14:36:33 +0000 Subject: WIP commit to introduce channels --- intern/elbeem/extern/elbeem.h | 13 ++++++----- intern/elbeem/intern/elbeem.cpp | 22 +++++++++++-------- intern/elbeem/intern/ntl_geometryobject.cpp | 17 ++++++++++++--- intern/elbeem/intern/ntl_geometryobject.h | 34 ++++++++++------------------- intern/elbeem/intern/solver_control.cpp | 8 +++---- intern/elbeem/intern/solver_init.cpp | 4 ++-- 6 files changed, 52 insertions(+), 46 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h index b8752efed80..5370196ff4a 100644 --- a/intern/elbeem/extern/elbeem.h +++ b/intern/elbeem/extern/elbeem.h @@ -163,11 +163,14 @@ typedef struct elbeemMesh { float cpsTimeStart; float cpsTimeEnd; - // TODO dg: change to channels - float attractforceStrength; - float attractforceRadius; - float velocityforceStrength; - float velocityforceRadius; + int channelSizeAttractforceStrength; + float *channelAttractforceStrength; + int channelSizeAttractforceRadius; + float *channelAttractforceRadius; + int channelSizeVelocityforceStrength; + float *channelVelocityforceStrength; + int channelSizeVelocityforceRadius; + float *channelVelocityforceRadius; } elbeemMesh; // API functions diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp index 4517e20d89c..b27fefd4381 100644 --- a/intern/elbeem/intern/elbeem.cpp +++ b/intern/elbeem/intern/elbeem.cpp @@ -164,10 +164,14 @@ void elbeemResetMesh(elbeemMesh *mesh) { mesh->cpsTimeStart = 0; mesh->cpsTimeEnd = 0; - mesh->attractforceStrength = 0; - mesh->attractforceRadius = 0; - mesh->velocityforceStrength = 0; - mesh->velocityforceRadius = 0; + mesh->channelSizeAttractforceStrength = 0; + mesh->channelAttractforceStrength = NULL; + mesh->channelSizeAttractforceRadius = 0; + mesh->channelAttractforceRadius = NULL; + mesh->channelSizeVelocityforceStrength = 0; + mesh->channelVelocityforceStrength = NULL; + mesh->channelSizeVelocityforceRadius = 0; + mesh->channelVelocityforceRadius = NULL; } int globalMeshCounter = 1; @@ -211,10 +215,6 @@ int elbeemAddMesh(elbeemMesh *mesh) { /* fluid control features */ obj->setCpsTimeStart(mesh->cpsTimeStart); obj->setCpsTimeEnd(mesh->cpsTimeEnd); - obj->setAttractForceStrength(mesh->attractforceStrength); - obj->setAttractForceRadius(mesh->attractforceRadius); - obj->setVelocityForceStrength(mesh->velocityforceStrength); - obj->setVelocityForceRadius(mesh->velocityforceRadius); if((mesh->volumeInitTypevolumeInitType>VOLUMEINIT_BOTH)) mesh->volumeInitType = VOLUMEINIT_VOLUME; obj->setVolumeInit(mesh->volumeInitType); @@ -224,7 +224,11 @@ int elbeemAddMesh(elbeemMesh *mesh) { mesh->channelSizeRotation, mesh->channelRotation, mesh->channelSizeScale, mesh->channelScale, mesh->channelSizeActive, mesh->channelActive, - mesh->channelSizeInitialVel, mesh->channelInitialVel + mesh->channelSizeInitialVel, mesh->channelInitialVel, + mesh->channelSizeAttractforceStrength, mesh->channelAttractforceStrength, + mesh->channelSizeAttractforceRadius, mesh->channelAttractforceRadius, + mesh->channelSizeVelocityforceStrength, mesh->channelVelocityforceStrength, + mesh->channelSizeVelocityforceRadius, mesh->channelVelocityforceRadius ); obj->setLocalCoordInivel( mesh->localInivelCoords ); diff --git a/intern/elbeem/intern/ntl_geometryobject.cpp b/intern/elbeem/intern/ntl_geometryobject.cpp index 68735acaec1..f64dbf104b5 100644 --- a/intern/elbeem/intern/ntl_geometryobject.cpp +++ b/intern/elbeem/intern/ntl_geometryobject.cpp @@ -41,7 +41,8 @@ ntlGeometryObject::ntlGeometryObject() : mCachedMovPoints(), mCachedMovNormals(), mTriangleDivs1(), mTriangleDivs2(), mTriangleDivs3(), mMovPntsInited(-100.0), mMaxMovPnt(-1), - mcGeoActive(1.) + mcGeoActive(1.), + mcAttrFStr(0.),mcAttrFRad(0.), mcVelFStr(0.), mcVelFRad(0.) { }; @@ -331,7 +332,11 @@ void ntlGeometryObject::sceneAddTriangleNoVert(int *trips, void ntlGeometryObject::initChannels( int nTrans, float *trans, int nRot, float *rot, int nScale, float *scale, - int nAct, float *act, int nIvel, float *ivel + int nAct, float *act, int nIvel, float *ivel, + int nAttrFStr, float *attrFStr, + int nAttrFRad, float *attrFRad, + int nVelFStr, float *velFStr, + int nVelFRad, float *velFRad ) { const bool debugInitc=true; if(debugInitc) { debMsgStd("ntlGeometryObject::initChannels",DM_MSG,"nt:"<0)) { ADD_CHANNEL_VEC(mcScale, nScale, scale); } if((act)&&(nAct>0)) { ADD_CHANNEL_FLOAT(mcGeoActive, nAct, act); } if((ivel)&&(nIvel>0)) { ADD_CHANNEL_VEC(mcInitialVelocity, nIvel, ivel); } + + /* fluid control channels */ + if((attrFStr)&&(nAttrFStr>0)) { printf("added!\n"); ADD_CHANNEL_FLOAT(mcAttrFStr, nAttrFStr, attrFStr); } + if((attrFRad)&&(nAttrFRad>0)) { ADD_CHANNEL_FLOAT(mcAttrFRad, nAttrFRad, attrFRad); } + if((velFStr)&&(nVelFStr>0)) { ADD_CHANNEL_FLOAT(mcVelFStr, nAct, velFStr); } + if((velFRad)&&(nVelFRad>0)) { ADD_CHANNEL_FLOAT(mcVelFRad, nVelFRad, velFRad); } checkIsAnimated(); @@ -567,7 +578,7 @@ void ntlGeometryObject::initMovingPoints(double time, gfxReal featureSize) { } } - if( (this-getMeshAnimated()) + if( (this->getMeshAnimated()) || (mcTrans.accessValues().size()>1) // VALIDATE || (mcRot.accessValues().size()>1) || (mcScale.accessValues().size()>1) diff --git a/intern/elbeem/intern/ntl_geometryobject.h b/intern/elbeem/intern/ntl_geometryobject.h index 6076610ea0f..436e511ea79 100644 --- a/intern/elbeem/intern/ntl_geometryobject.h +++ b/intern/elbeem/intern/ntl_geometryobject.h @@ -109,28 +109,21 @@ class ntlGeometryObject : public ntlGeometryClass inline float getCpsTimeEnd() const { return mCpsTimeEnd; } inline void setCpsTimeEnd(float set) { mCpsTimeEnd=set; } - /*! Set/get the particle control set attract force strength */ - inline float getAttractForceStrength() const { return mAttractforceStrength; } - inline void setAttractForceStrength(float set) { mAttractforceStrength=set; } - - /*! Set/get the particle control set attract force radius */ - inline float getAttractForceRadius() const { return mAttractforceRadius; } - inline void setAttractForceRadius(float set) { mAttractforceRadius=set; } - - /*! Set/get the particle control set velocity force strength */ - inline float getVelocityForceStrength() const { return mVelocityforceStrength; } - inline void setVelocityForceStrength(float set) { mVelocityforceStrength=set; } - - /*! Set/get the particle control set velocity force radius */ - inline float getVelocityForceRadius() const { return mVelocityforceRadius; } - inline void setVelocityForceRadius(float set) { mVelocityforceRadius=set; } + inline AnimChannel getCpsAttrFStr() const { return mcAttrFStr; } + inline AnimChannel getCpsAttrFRad() const { return mcAttrFRad; } + inline AnimChannel getCpsVelFStr() const { return mcVelFStr; } + inline AnimChannel getCpsVelFRad() const { return mcVelFRad; } /****************************************/ /*! Init channels from float arrays (for elbeem API) */ void initChannels( int nTrans, float *trans, int nRot, float *rot, int nScale, float *scale, - int nAct, float *act, int nIvel, float *ivel + int nAct, float *act, int nIvel, float *ivel, + int nAttrFStr, float *attrFStr, + int nAttrFRad, float *attrFRad, + int nVelFStr, float *velFStr, + int nVelFRad, float *velFRad ); /*! is the object animated? */ @@ -234,13 +227,8 @@ class ntlGeometryObject : public ntlGeometryClass /* fluid control settings */ float mCpsTimeStart; - float mCpsTimeEnd - ; - // TODO dg: change to channels - float mAttractforceStrength; - float mAttractforceRadius; - float mVelocityforceStrength; - float mVelocityforceRadius; + float mCpsTimeEnd; + AnimChannel mcAttrFStr, mcAttrFRad, mcVelFStr, mcVelFRad; public: diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp index 267a1c5268c..bda464f56d6 100644 --- a/intern/elbeem/intern/solver_control.cpp +++ b/intern/elbeem/intern/solver_control.cpp @@ -234,10 +234,10 @@ LbmFsgrSolver::initCpdata() cset->mContrPartFile = string(""); // TODO dg: switch to channels later - cset->mcForceAtt = AnimChannel(obj->getAttractForceStrength()); - cset->mcRadiusAtt = AnimChannel(obj->getAttractForceRadius()); - cset->mcForceVel = AnimChannel(obj->getVelocityForceStrength()); - cset->mcRadiusVel = AnimChannel(obj->getVelocityForceRadius()); + cset->mcForceAtt = obj->getCpsAttrFStr(); + cset->mcRadiusAtt = obj->getCpsAttrFRad(); + cset->mcForceVel = obj->getCpsVelFStr(); + cset->mcRadiusVel = obj->getCpsVelFRad(); cset->mCparts->setCPSTimeStart(obj->getCpsTimeStart()); cset->mCparts->setCPSTimeEnd(obj->getCpsTimeEnd()); diff --git a/intern/elbeem/intern/solver_init.cpp b/intern/elbeem/intern/solver_init.cpp index 6dd654f57ff..cbcc99dd6e0 100644 --- a/intern/elbeem/intern/solver_init.cpp +++ b/intern/elbeem/intern/solver_init.cpp @@ -696,16 +696,16 @@ bool LbmFsgrSolver::initializeSolverMemory() // restrict max. chunk of 1 mem block to 1GB for windos bool memBlockAllocProblem = false; - double maxWinMemChunk = 1100.*1024.*1024.; - double maxMacMemChunk = 1200.*1024.*1024.; double maxDefaultMemChunk = 2.*1024.*1024.*1024.; //std::cerr<<" memEstFine "<< memEstFine <<" maxWin:" < maxWinMemChunk) { memBlockAllocProblem = true; } #endif // WIN32 #ifdef __APPLE__ + double maxMacMemChunk = 1200.*1024.*1024.; if(memEstFine> maxMacMemChunk) { memBlockAllocProblem = true; } -- cgit v1.2.3 From 2ad696111e2a0d356c83846fd3304c991f039fb9 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 7 Jul 2008 20:28:56 +0000 Subject: Some channel fixes for fc --- intern/elbeem/intern/elbeem.cpp | 1 + intern/elbeem/intern/ntl_geometryobject.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp index b27fefd4381..00fc9ef6854 100644 --- a/intern/elbeem/intern/elbeem.cpp +++ b/intern/elbeem/intern/elbeem.cpp @@ -219,6 +219,7 @@ int elbeemAddMesh(elbeemMesh *mesh) { if((mesh->volumeInitTypevolumeInitType>VOLUMEINIT_BOTH)) mesh->volumeInitType = VOLUMEINIT_VOLUME; obj->setVolumeInit(mesh->volumeInitType); // use channel instead, obj->setInitialVelocity( ntlVec3Gfx(mesh->iniVelocity[0], mesh->iniVelocity[1], mesh->iniVelocity[2]) ); + obj->initChannels( mesh->channelSizeTranslation, mesh->channelTranslation, mesh->channelSizeRotation, mesh->channelRotation, diff --git a/intern/elbeem/intern/ntl_geometryobject.cpp b/intern/elbeem/intern/ntl_geometryobject.cpp index f64dbf104b5..32433df34b3 100644 --- a/intern/elbeem/intern/ntl_geometryobject.cpp +++ b/intern/elbeem/intern/ntl_geometryobject.cpp @@ -351,10 +351,10 @@ void ntlGeometryObject::initChannels( if((ivel)&&(nIvel>0)) { ADD_CHANNEL_VEC(mcInitialVelocity, nIvel, ivel); } /* fluid control channels */ - if((attrFStr)&&(nAttrFStr>0)) { printf("added!\n"); ADD_CHANNEL_FLOAT(mcAttrFStr, nAttrFStr, attrFStr); } - if((attrFRad)&&(nAttrFRad>0)) { ADD_CHANNEL_FLOAT(mcAttrFRad, nAttrFRad, attrFRad); } - if((velFStr)&&(nVelFStr>0)) { ADD_CHANNEL_FLOAT(mcVelFStr, nAct, velFStr); } - if((velFRad)&&(nVelFRad>0)) { ADD_CHANNEL_FLOAT(mcVelFRad, nVelFRad, velFRad); } + if((attrFStr)&&(nAttrFStr>0)) { ADD_CHANNEL_FLOAT(mcAttrFStr, nAttrFStr, attrFStr); } + if((attrFRad)&&(nAttrFRad>0)) { ADD_CHANNEL_FLOAT(mcAttrFRad, nAttrFRad, attrFRad); } + if((velFStr)&&(nVelFStr>0)) { ADD_CHANNEL_FLOAT(mcVelFStr, nAct, velFStr); } + if((velFRad)&&(nVelFRad>0)) { ADD_CHANNEL_FLOAT(mcVelFRad, nVelFRad, velFRad); } checkIsAnimated(); -- cgit v1.2.3 From 1d822b1cda135652125c57edc29f4167f1980912 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 7 Jul 2008 22:11:11 +0000 Subject: patch from res2k to stop the blender window being upscaled on vista. --- intern/ghost/intern/GHOST_SystemWin32.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 82a76b3c706..293f8fc1661 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -302,6 +302,15 @@ GHOST_TSuccess GHOST_SystemWin32::init() { GHOST_TSuccess success = GHOST_System::init(); + /* Disable scaling on high DPI displays on Vista */ + HMODULE user32 = ::LoadLibraryA("user32.dll"); + typedef BOOL (WINAPI * LPFNSETPROCESSDPIAWARE)(); + LPFNSETPROCESSDPIAWARE SetProcessDPIAware = + (LPFNSETPROCESSDPIAWARE)GetProcAddress(user32, "SetProcessDPIAware"); + if (SetProcessDPIAware) + SetProcessDPIAware(); + FreeLibrary(user32); + // Determine whether this system has a high frequency performance counter. */ m_hasPerformanceCounter = ::QueryPerformanceFrequency((LARGE_INTEGER*)&m_freq) == TRUE; if (m_hasPerformanceCounter) { -- cgit v1.2.3 From 3bab1eba3a6c1cbf590d57cd10040491116077fa Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Tue, 8 Jul 2008 17:38:33 +0000 Subject: Introduced quality to GUI, not yet tested (WIP commit) --- intern/elbeem/extern/elbeem.h | 1 + intern/elbeem/intern/elbeem.cpp | 2 ++ intern/elbeem/intern/ntl_geometryobject.cpp | 1 + intern/elbeem/intern/ntl_geometryobject.h | 5 +++++ intern/elbeem/intern/solver_control.cpp | 3 +++ 5 files changed, 12 insertions(+) (limited to 'intern') diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h index 5370196ff4a..2cee22a62a4 100644 --- a/intern/elbeem/extern/elbeem.h +++ b/intern/elbeem/extern/elbeem.h @@ -162,6 +162,7 @@ typedef struct elbeemMesh { /* fluid control settings */ float cpsTimeStart; float cpsTimeEnd; + float cpsQuality; int channelSizeAttractforceStrength; float *channelAttractforceStrength; diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp index 00fc9ef6854..0deed5082b0 100644 --- a/intern/elbeem/intern/elbeem.cpp +++ b/intern/elbeem/intern/elbeem.cpp @@ -163,6 +163,7 @@ void elbeemResetMesh(elbeemMesh *mesh) { /* fluid control settings */ mesh->cpsTimeStart = 0; mesh->cpsTimeEnd = 0; + mesh->cpsQuality = 0; mesh->channelSizeAttractforceStrength = 0; mesh->channelAttractforceStrength = NULL; @@ -215,6 +216,7 @@ int elbeemAddMesh(elbeemMesh *mesh) { /* fluid control features */ obj->setCpsTimeStart(mesh->cpsTimeStart); obj->setCpsTimeEnd(mesh->cpsTimeEnd); + obj->setCpsQuality(mesh->cpsQuality); if((mesh->volumeInitTypevolumeInitType>VOLUMEINIT_BOTH)) mesh->volumeInitType = VOLUMEINIT_VOLUME; obj->setVolumeInit(mesh->volumeInitType); diff --git a/intern/elbeem/intern/ntl_geometryobject.cpp b/intern/elbeem/intern/ntl_geometryobject.cpp index 32433df34b3..c7a222af3e5 100644 --- a/intern/elbeem/intern/ntl_geometryobject.cpp +++ b/intern/elbeem/intern/ntl_geometryobject.cpp @@ -42,6 +42,7 @@ ntlGeometryObject::ntlGeometryObject() : mTriangleDivs1(), mTriangleDivs2(), mTriangleDivs3(), mMovPntsInited(-100.0), mMaxMovPnt(-1), mcGeoActive(1.), + mCpsTimeStart(0.), mCpsTimeEnd(1.0), mCpsQuality(10.), mcAttrFStr(0.),mcAttrFRad(0.), mcVelFStr(0.), mcVelFRad(0.) { }; diff --git a/intern/elbeem/intern/ntl_geometryobject.h b/intern/elbeem/intern/ntl_geometryobject.h index 436e511ea79..666798385f6 100644 --- a/intern/elbeem/intern/ntl_geometryobject.h +++ b/intern/elbeem/intern/ntl_geometryobject.h @@ -109,6 +109,10 @@ class ntlGeometryObject : public ntlGeometryClass inline float getCpsTimeEnd() const { return mCpsTimeEnd; } inline void setCpsTimeEnd(float set) { mCpsTimeEnd=set; } + /*! Set/get the particle control set quality */ + inline float getCpsQuality() const { return mCpsQuality; } + inline void setCpsQuality(float set) { mCpsQuality=set; } + inline AnimChannel getCpsAttrFStr() const { return mcAttrFStr; } inline AnimChannel getCpsAttrFRad() const { return mcAttrFRad; } inline AnimChannel getCpsVelFStr() const { return mcVelFStr; } @@ -228,6 +232,7 @@ class ntlGeometryObject : public ntlGeometryClass /* fluid control settings */ float mCpsTimeStart; float mCpsTimeEnd; + float mCpsQuality; AnimChannel mcAttrFStr, mcAttrFRad, mcVelFStr, mcVelFRad; public: diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp index bda464f56d6..3dc9b700ccb 100644 --- a/intern/elbeem/intern/solver_control.cpp +++ b/intern/elbeem/intern/solver_control.cpp @@ -242,6 +242,9 @@ LbmFsgrSolver::initCpdata() cset->mCparts->setCPSTimeStart(obj->getCpsTimeStart()); cset->mCparts->setCPSTimeEnd(obj->getCpsTimeEnd()); + if(obj->getCpsQuality() > LBM_EPSILON) + cset->mCparts->setCPSWith(1.0 / obj->getCpsQuality()); + // this value can be left at 0.5: cset->mCparts->setCPSMvmWeightFac(0.5); -- cgit v1.2.3 From 99fdf27af92b9bd9d05c108f2c2c8a240c5536bc Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 10 Jul 2008 12:47:20 +0000 Subject: Sync with Apricot Game Engine ============================= * Clean up and optimizations in skinned/deformed mesh code. * Compatibility fixes and clean up in the rasterizer. * Changes related to GLSL shadow buffers which should have no effect, to keep the code in sync with apricot. --- intern/moto/include/GEN_Map.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'intern') diff --git a/intern/moto/include/GEN_Map.h b/intern/moto/include/GEN_Map.h index db3335d6110..9f56924419e 100644 --- a/intern/moto/include/GEN_Map.h +++ b/intern/moto/include/GEN_Map.h @@ -82,6 +82,24 @@ public: } return 0; } + + Key* getKey(int index) { + int count=0; + for (int i=0;im_key; + } + bucket = bucket->m_next; + count++; + } + } + return 0; + } void clear() { for (int i = 0; i < m_num_buckets; ++i) { -- cgit v1.2.3 From b369936b1168984b37b04d4d78184ce59442de9e Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Fri, 11 Jul 2008 18:08:25 +0000 Subject: Fix for several memory leaks in fluidsim (found with Valgrind). --- intern/elbeem/intern/ntl_geometryclass.h | 1 + intern/elbeem/intern/ntl_ray.h | 5 +++-- intern/elbeem/intern/simulation_object.cpp | 3 ++- intern/elbeem/intern/solver_control.cpp | 3 +++ intern/elbeem/intern/solver_init.cpp | 4 ++++ 5 files changed, 13 insertions(+), 3 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/intern/ntl_geometryclass.h b/intern/elbeem/intern/ntl_geometryclass.h index 9282371d183..545f8c1d54f 100644 --- a/intern/elbeem/intern/ntl_geometryclass.h +++ b/intern/elbeem/intern/ntl_geometryclass.h @@ -37,6 +37,7 @@ class ntlGeometryClass //! Default destructor virtual ~ntlGeometryClass() { delete mpAttrs; + delete mpSwsAttrs; }; //! Return type id diff --git a/intern/elbeem/intern/ntl_ray.h b/intern/elbeem/intern/ntl_ray.h index 096d5fd61d3..9b77fdcae28 100644 --- a/intern/elbeem/intern/ntl_ray.h +++ b/intern/elbeem/intern/ntl_ray.h @@ -20,6 +20,7 @@ class ntlRay; class ntlTree; class ntlScene; class ntlRenderGlobals; +class ntlGeometryObject; //! store data for an intersection of a ray and a triangle // NOT YET USED @@ -323,8 +324,8 @@ public: /* CONSTRUCTORS */ /*! Default constructor */ ntlScene( ntlRenderGlobals *glob, bool del=true ); - /*! Default destructor */ - ~ntlScene(); + /*! Default destructor */ + ~ntlScene(); /*! Add an object to the scene */ inline void addGeoClass(ntlGeometryClass *geo) { diff --git a/intern/elbeem/intern/simulation_object.cpp b/intern/elbeem/intern/simulation_object.cpp index 9b47ae696af..81e056771fc 100644 --- a/intern/elbeem/intern/simulation_object.cpp +++ b/intern/elbeem/intern/simulation_object.cpp @@ -58,7 +58,8 @@ SimulationObject::~SimulationObject() if(mpGiTree) delete mpGiTree; if(mpElbeemSettings) delete mpElbeemSettings; if(mpLbm) delete mpLbm; - if(mpParam) delete mpParam; + if(mpParam) delete mpParam; + if(mpParts) delete mpParts; debMsgStd("SimulationObject",DM_MSG,"El'Beem Done!\n",10); } diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp index 3dc9b700ccb..ee032f17f8a 100644 --- a/intern/elbeem/intern/solver_control.cpp +++ b/intern/elbeem/intern/solver_control.cpp @@ -63,6 +63,9 @@ LbmControlData::LbmControlData() : LbmControlData::~LbmControlData() { + while (!mCons.empty()) { + delete mCons.back(); mCons.pop_back(); + } } diff --git a/intern/elbeem/intern/solver_init.cpp b/intern/elbeem/intern/solver_init.cpp index cbcc99dd6e0..fd7a0b6be2c 100644 --- a/intern/elbeem/intern/solver_init.cpp +++ b/intern/elbeem/intern/solver_init.cpp @@ -441,6 +441,10 @@ LbmFsgrSolver::~LbmFsgrSolver() delete mpIso; if(mpPreviewSurface) delete mpPreviewSurface; // cleanup done during scene deletion... + +#if LBM_INCLUDE_CONTROL==1 + if(mpControl) delete mpControl; +#endif // always output performance estimate debMsgStd("LbmFsgrSolver::~LbmFsgrSolver",DM_MSG," Avg. MLSUPS:"<<(mAvgMLSUPS/mAvgMLSUPSCnt), 5); -- cgit v1.2.3 From d124d3c5cdfdc9d470a4734281396b97c4d3afb5 Mon Sep 17 00:00:00 2001 From: Maxime Curioni Date: Sat, 12 Jul 2008 04:02:08 +0000 Subject: soc-2008-mxcurioni: first part of the Freestyle Python implementation. A new Freestyle module is added. The following modules are implemented: BinaryPredicate0D, BinaryPredicate1D, Id, Interface0D, Interface1D. I added a Convert module to help in the creation of Python objects for Freestyle's data structures. I also added a missing file for guarded_alloc needed for compilation on Windows. --- intern/guardedalloc/intern/mmap_win.c | 260 ++++++++++++++++++++++++++++++++++ intern/guardedalloc/mmap_win.h | 51 +++++++ 2 files changed, 311 insertions(+) create mode 100644 intern/guardedalloc/intern/mmap_win.c create mode 100644 intern/guardedalloc/mmap_win.h (limited to 'intern') diff --git a/intern/guardedalloc/intern/mmap_win.c b/intern/guardedalloc/intern/mmap_win.c new file mode 100644 index 00000000000..436c99344a7 --- /dev/null +++ b/intern/guardedalloc/intern/mmap_win.c @@ -0,0 +1,260 @@ +/** + * $Id: $ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2008 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Andrea Weikert. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#if defined(WIN32) + +#include +#include +#include +#include +#include + +#include "mmap_win.h" + +#ifndef FILE_MAP_EXECUTE +//not defined in earlier versions of the Platform SDK (before February 2003) +#define FILE_MAP_EXECUTE 0x0020 +#endif + +/* --------------------------------------------------------------------- */ +/* local storage definitions */ +/* --------------------------------------------------------------------- */ +/* all memory mapped chunks are put in linked lists */ +typedef struct mmapLink +{ + struct mmapLink *next,*prev; +} mmapLink; + +typedef struct mmapListBase +{ + void *first, *last; +} mmapListBase; + +typedef struct MemMap { + struct MemMap *next,*prev; + void *mmap; + HANDLE fhandle; + HANDLE maphandle; +} MemMap; + +/* --------------------------------------------------------------------- */ +/* local functions */ +/* --------------------------------------------------------------------- */ + +static void mmap_addtail(volatile mmapListBase *listbase, void *vlink); +static void mmap_remlink(volatile mmapListBase *listbase, void *vlink); +static void *mmap_findlink(volatile mmapListBase *listbase, void *ptr); + +static int mmap_get_prot_flags (int flags); +static int mmap_get_access_flags (int flags); + +/* --------------------------------------------------------------------- */ +/* vars */ +/* --------------------------------------------------------------------- */ +volatile static struct mmapListBase _mmapbase; +volatile static struct mmapListBase *mmapbase = &_mmapbase; + + +/* --------------------------------------------------------------------- */ +/* implementation */ +/* --------------------------------------------------------------------- */ + +/* mmap for windows */ +void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t offset) +{ + HANDLE fhandle = INVALID_HANDLE_VALUE; + HANDLE maphandle; + int prot_flags = mmap_get_prot_flags(prot); + int access_flags = mmap_get_access_flags(prot); + MemMap *mm = NULL; + void *ptr = NULL; + + if ( flags & MAP_FIXED ) { + return MAP_FAILED; + } + + /* + if ( fd == -1 ) { + _set_errno( EBADF ); + return MAP_FAILED; + } + */ + + if ( fd != -1 ) { + fhandle = (HANDLE) _get_osfhandle (fd); + } + if ( fhandle == INVALID_HANDLE_VALUE ) { + if (!(flags & MAP_ANONYMOUS)) { + errno = EBADF; + return MAP_FAILED; + } + } else { + if ( !DuplicateHandle( GetCurrentProcess(), fhandle, GetCurrentProcess(), + &fhandle, 0, FALSE, DUPLICATE_SAME_ACCESS ) ) { + return MAP_FAILED; + } + } + + maphandle = CreateFileMapping(fhandle, NULL, prot_flags, 0, len, NULL); + if ( maphandle == 0 ) { + errno = EBADF; + return MAP_FAILED; + } + + ptr = MapViewOfFile(maphandle, access_flags, 0, offset, 0); + if ( ptr == NULL ) { + DWORD dwLastErr = GetLastError(); + if ( dwLastErr == ERROR_MAPPED_ALIGNMENT ) + errno=EINVAL; + else + errno=EACCES; + CloseHandle(maphandle); + return MAP_FAILED; + } + + mm= (MemMap *)malloc(sizeof(MemMap)); + if (!mm) { + errno=ENOMEM; + } + mm->fhandle = fhandle; + mm->maphandle = maphandle; + mm->mmap = ptr; + mmap_addtail(mmapbase, mm); + + return ptr; +} + +/* munmap for windows */ +long munmap(void *ptr, long size) +{ + MemMap *mm = mmap_findlink(mmapbase, ptr); + if (!mm) { + errno=EINVAL; + return -1; + } + UnmapViewOfFile( mm->mmap ); + CloseHandle( mm->maphandle ); + CloseHandle( mm->fhandle); + mmap_remlink(mmapbase, mm); + return 0; +} + +/* --------------------------------------------------------------------- */ +/* local functions */ +/* --------------------------------------------------------------------- */ + +static void mmap_addtail(volatile mmapListBase *listbase, void *vlink) +{ + struct mmapLink *link= vlink; + + if (link == 0) return; + if (listbase == 0) return; + + link->next = 0; + link->prev = listbase->last; + + if (listbase->last) ((struct mmapLink *)listbase->last)->next = link; + if (listbase->first == 0) listbase->first = link; + listbase->last = link; +} + +static void mmap_remlink(volatile mmapListBase *listbase, void *vlink) +{ + struct mmapLink *link= vlink; + + if (link == 0) return; + if (listbase == 0) return; + + if (link->next) link->next->prev = link->prev; + if (link->prev) link->prev->next = link->next; + + if (listbase->last == link) listbase->last = link->prev; + if (listbase->first == link) listbase->first = link->next; +} + +static void *mmap_findlink(volatile mmapListBase *listbase, void *ptr) +{ + MemMap *mm; + + if (ptr == 0) return NULL; + if (listbase == 0) return NULL; + + mm = (MemMap *)listbase->first; + while (mm) { + if (mm->mmap == ptr) { + return mm; + } + mm = mm->next; + } + return NULL; +} + +static int mmap_get_prot_flags (int flags) +{ + int prot = PAGE_NOACCESS; + + if ( ( flags & PROT_READ ) == PROT_READ ) { + if ( ( flags & PROT_WRITE ) == PROT_WRITE ) { + prot = (flags & PROT_EXEC) ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE; + } else { + prot = (flags & PROT_EXEC) ? PAGE_EXECUTE_READ : PAGE_READONLY; + } + } else if ( ( flags & PROT_WRITE ) == PROT_WRITE ) { + prot = (flags & PROT_EXEC) ? PAGE_EXECUTE_READ : PAGE_WRITECOPY; + } else if ( ( flags & PROT_EXEC ) == PROT_EXEC ) { + prot = PAGE_EXECUTE_READ; + } + return prot; +} + +static int mmap_get_access_flags (int flags) +{ + int access = 0; + + if ( ( flags & PROT_READ ) == PROT_READ ) { + if ( ( flags & PROT_WRITE ) == PROT_WRITE ) { + access = FILE_MAP_WRITE; + } else { + access = (flags & PROT_EXEC) ? FILE_MAP_EXECUTE : FILE_MAP_READ; + } + } else if ( ( flags & PROT_WRITE ) == PROT_WRITE ) { + access = FILE_MAP_COPY; + } else if ( ( flags & PROT_EXEC ) == PROT_EXEC ) { + access = FILE_MAP_EXECUTE; + } + return access; +} + + +#endif // WIN32 + + + + + diff --git a/intern/guardedalloc/mmap_win.h b/intern/guardedalloc/mmap_win.h new file mode 100644 index 00000000000..53af86e1f66 --- /dev/null +++ b/intern/guardedalloc/mmap_win.h @@ -0,0 +1,51 @@ +/** + * $Id: $ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2008 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Andrea Weikert. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef MMAP_WIN_H +#define MMAP_WIN_H + +#define PROT_NONE 0 +#define PROT_READ 1 +#define PROT_WRITE 2 +#define PROT_EXEC 4 + +#define MAP_FILE 0 +#define MAP_SHARED 1 +#define MAP_PRIVATE 2 +#define MAP_TYPE 0xF +#define MAP_FIXED 0x10 +#define MAP_ANONYMOUS 0x20 +#define MAP_ANON MAP_ANONYMOUS + +#define MAP_FAILED ((void *)-1) + +void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t offset); +long munmap(void *ptr, long size); + +#endif \ No newline at end of file -- cgit v1.2.3 From 8398730043faeb9af860ca7a408a5a4ba49b46f1 Mon Sep 17 00:00:00 2001 From: Maxime Curioni Date: Sat, 12 Jul 2008 05:02:47 +0000 Subject: soc-2008-mxcurioni: merge with trunk - rev 15540 --- intern/ghost/intern/GHOST_SystemWin32.cpp | 9 +++++++++ intern/moto/include/GEN_Map.h | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 82a76b3c706..293f8fc1661 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -302,6 +302,15 @@ GHOST_TSuccess GHOST_SystemWin32::init() { GHOST_TSuccess success = GHOST_System::init(); + /* Disable scaling on high DPI displays on Vista */ + HMODULE user32 = ::LoadLibraryA("user32.dll"); + typedef BOOL (WINAPI * LPFNSETPROCESSDPIAWARE)(); + LPFNSETPROCESSDPIAWARE SetProcessDPIAware = + (LPFNSETPROCESSDPIAWARE)GetProcAddress(user32, "SetProcessDPIAware"); + if (SetProcessDPIAware) + SetProcessDPIAware(); + FreeLibrary(user32); + // Determine whether this system has a high frequency performance counter. */ m_hasPerformanceCounter = ::QueryPerformanceFrequency((LARGE_INTEGER*)&m_freq) == TRUE; if (m_hasPerformanceCounter) { diff --git a/intern/moto/include/GEN_Map.h b/intern/moto/include/GEN_Map.h index db3335d6110..9f56924419e 100644 --- a/intern/moto/include/GEN_Map.h +++ b/intern/moto/include/GEN_Map.h @@ -82,6 +82,24 @@ public: } return 0; } + + Key* getKey(int index) { + int count=0; + for (int i=0;im_key; + } + bucket = bucket->m_next; + count++; + } + } + return 0; + } void clear() { for (int i = 0; i < m_num_buckets; ++i) { -- cgit v1.2.3 From 37ca3d7a3928962442d10381018c3c8eeb078f16 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 13 Jul 2008 17:49:12 +0000 Subject: Fix to let Ghost compile with win64 msvc compiler. --- intern/ghost/intern/GHOST_SystemWin32.cpp | 8 ++++++++ intern/ghost/intern/GHOST_WindowWin32.cpp | 8 ++++++++ 2 files changed, 16 insertions(+) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 293f8fc1661..f5c7c08ebfe 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -42,6 +42,14 @@ #include "GHOST_SystemWin32.h" +// win64 doesn't define GWL_USERDATA +#ifdef WIN32 +#ifndef GWL_USERDATA +#define GWL_USERDATA GWLP_USERDATA +#define GWL_WNDPROC GWLP_WNDPROC +#endif +#endif + /* * According to the docs the mouse wheel message is supported from windows 98 * upwards. Leaving WINVER at default value, the WM_MOUSEWHEEL message and the diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index 905b2f7ac63..fef58d071a4 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -48,6 +48,14 @@ #define M_PI 3.1415926536 #endif +// win64 doesn't define GWL_USERDATA +#ifdef WIN32 +#ifndef GWL_USERDATA +#define GWL_USERDATA GWLP_USERDATA +#define GWL_WNDPROC GWLP_WNDPROC +#endif +#endif + LPCSTR GHOST_WindowWin32::s_windowClassName = "GHOST_WindowClass"; const int GHOST_WindowWin32::s_maxTitleLength = 128; HGLRC GHOST_WindowWin32::s_firsthGLRc = NULL; -- cgit v1.2.3 From 8a19adeb5857f67db22e4f1b08330a967f462844 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 13 Jul 2008 18:29:07 +0000 Subject: Win64 fix: if you disable enough things in CMakeList.txt blender compiles on win64 now using cmake --> *BUT* it doesn't say anything about if it works with MEM>4GB (that's next thing to explore!) --- intern/bsp/intern/BSP_CSGMesh.cpp | 2 +- intern/container/CTR_TaggedIndex.h | 16 ++++++++++++++++ intern/decimation/intern/LOD_ManMesh2.cpp | 6 +++--- 3 files changed, 20 insertions(+), 4 deletions(-) (limited to 'intern') diff --git a/intern/bsp/intern/BSP_CSGMesh.cpp b/intern/bsp/intern/BSP_CSGMesh.cpp index 553f39a4642..ca7795b3cf5 100644 --- a/intern/bsp/intern/BSP_CSGMesh.cpp +++ b/intern/bsp/intern/BSP_CSGMesh.cpp @@ -197,7 +197,7 @@ BuildEdges( for (int vert = 0; vert < vertex_num; ++vert) { - BSP_FaceInd fi(f_it - f_it_begin); + BSP_FaceInd fi(size_t (f_it - f_it_begin)); InsertEdge(prev_vi,face.m_verts[vert],fi,dummy); prev_vi = face.m_verts[vert]; } diff --git a/intern/container/CTR_TaggedIndex.h b/intern/container/CTR_TaggedIndex.h index 7a7bd85e890..68d2536c879 100644 --- a/intern/container/CTR_TaggedIndex.h +++ b/intern/container/CTR_TaggedIndex.h @@ -93,6 +93,16 @@ public: } +#if defined(_WIN64) + CTR_TaggedIndex( + const unsigned __int64 val + ) : + m_val ( ((unsigned __int64)val & index_mask) + | ( (empty_tag << tag_shift) + & (~index_mask) ) ) { + } +#endif + CTR_TaggedIndex( const CTR_TaggedIndex &my_index ): @@ -124,6 +134,12 @@ public: return (long int)(m_val & index_mask); } +#if defined(_WIN64) + operator unsigned __int64 () const { + return (unsigned __int64)(m_val & index_mask); + } +#endif + bool IsEmpty( ) const { diff --git a/intern/decimation/intern/LOD_ManMesh2.cpp b/intern/decimation/intern/LOD_ManMesh2.cpp index eeb497bb09e..2fe49b36583 100644 --- a/intern/decimation/intern/LOD_ManMesh2.cpp +++ b/intern/decimation/intern/LOD_ManMesh2.cpp @@ -477,7 +477,7 @@ DeleteVertex( return; } - LOD_VertexInd last = LOD_VertexInd(verts.end() - verts.begin() - 1); + LOD_VertexInd last = LOD_VertexInd(size_t(verts.end() - verts.begin() - 1)); if (!(last == v)) { @@ -533,7 +533,7 @@ DeleteEdge( return; } - LOD_EdgeInd last = LOD_EdgeInd(edges.end() - edges.begin() - 1); + LOD_EdgeInd last = LOD_EdgeInd(size_t(edges.end() - edges.begin() - 1)); if (!(last == e)) { vector e_verts; @@ -573,7 +573,7 @@ DeleteFace( return; } - LOD_FaceInd last = LOD_FaceInd(faces.end() - faces.begin() - 1); + LOD_FaceInd last = LOD_FaceInd(size_t (faces.end() - faces.begin() - 1)); if (!(last == f)) { -- cgit v1.2.3 From d50d175ba16b5e4392697e7195bef77fbb1afd95 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 14 Jul 2008 12:24:49 +0000 Subject: Win64 fix: disable 1GB restriction for 64bit windows systems, baking fluid with >4GB is verified to work on Vista64. --- intern/elbeem/intern/solver_init.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/elbeem/intern/solver_init.cpp b/intern/elbeem/intern/solver_init.cpp index c953d2f47da..a873f3c6987 100644 --- a/intern/elbeem/intern/solver_init.cpp +++ b/intern/elbeem/intern/solver_init.cpp @@ -694,7 +694,7 @@ bool LbmFsgrSolver::initializeSolverMemory() double maxDefaultMemChunk = 2.*1024.*1024.*1024.; //std::cerr<<" memEstFine "<< memEstFine <<" maxWin:" < maxWinMemChunk) { + if(sizeof(void *)==4 && memEstFine>maxWinMemChunk) { memBlockAllocProblem = true; } #endif // WIN32 -- cgit v1.2.3 From f042a468fdd0f06ca41c022c9ed6ac59d35ff143 Mon Sep 17 00:00:00 2001 From: Ian Thompson Date: Fri, 18 Jul 2008 23:35:34 +0000 Subject: Merged 15170:15635 from trunk (no conflicts or even merges) --- intern/bsp/intern/BSP_CSGMesh.cpp | 2 +- intern/container/CTR_TaggedIndex.h | 16 ++++++++++++++++ intern/decimation/intern/LOD_ManMesh2.cpp | 6 +++--- intern/elbeem/intern/solver_init.cpp | 2 +- intern/ghost/intern/GHOST_SystemWin32.cpp | 17 +++++++++++++++++ intern/ghost/intern/GHOST_SystemX11.cpp | 8 ++++---- intern/ghost/intern/GHOST_WindowWin32.cpp | 8 ++++++++ intern/iksolver/intern/IK_QTask.h | 2 +- intern/moto/include/GEN_Map.h | 18 ++++++++++++++++++ intern/moto/include/MT_random.h | 6 +++--- intern/moto/intern/MT_random.cpp | 10 +++++----- 11 files changed, 77 insertions(+), 18 deletions(-) (limited to 'intern') diff --git a/intern/bsp/intern/BSP_CSGMesh.cpp b/intern/bsp/intern/BSP_CSGMesh.cpp index 553f39a4642..ca7795b3cf5 100644 --- a/intern/bsp/intern/BSP_CSGMesh.cpp +++ b/intern/bsp/intern/BSP_CSGMesh.cpp @@ -197,7 +197,7 @@ BuildEdges( for (int vert = 0; vert < vertex_num; ++vert) { - BSP_FaceInd fi(f_it - f_it_begin); + BSP_FaceInd fi(size_t (f_it - f_it_begin)); InsertEdge(prev_vi,face.m_verts[vert],fi,dummy); prev_vi = face.m_verts[vert]; } diff --git a/intern/container/CTR_TaggedIndex.h b/intern/container/CTR_TaggedIndex.h index 7a7bd85e890..68d2536c879 100644 --- a/intern/container/CTR_TaggedIndex.h +++ b/intern/container/CTR_TaggedIndex.h @@ -93,6 +93,16 @@ public: } +#if defined(_WIN64) + CTR_TaggedIndex( + const unsigned __int64 val + ) : + m_val ( ((unsigned __int64)val & index_mask) + | ( (empty_tag << tag_shift) + & (~index_mask) ) ) { + } +#endif + CTR_TaggedIndex( const CTR_TaggedIndex &my_index ): @@ -124,6 +134,12 @@ public: return (long int)(m_val & index_mask); } +#if defined(_WIN64) + operator unsigned __int64 () const { + return (unsigned __int64)(m_val & index_mask); + } +#endif + bool IsEmpty( ) const { diff --git a/intern/decimation/intern/LOD_ManMesh2.cpp b/intern/decimation/intern/LOD_ManMesh2.cpp index eeb497bb09e..2fe49b36583 100644 --- a/intern/decimation/intern/LOD_ManMesh2.cpp +++ b/intern/decimation/intern/LOD_ManMesh2.cpp @@ -477,7 +477,7 @@ DeleteVertex( return; } - LOD_VertexInd last = LOD_VertexInd(verts.end() - verts.begin() - 1); + LOD_VertexInd last = LOD_VertexInd(size_t(verts.end() - verts.begin() - 1)); if (!(last == v)) { @@ -533,7 +533,7 @@ DeleteEdge( return; } - LOD_EdgeInd last = LOD_EdgeInd(edges.end() - edges.begin() - 1); + LOD_EdgeInd last = LOD_EdgeInd(size_t(edges.end() - edges.begin() - 1)); if (!(last == e)) { vector e_verts; @@ -573,7 +573,7 @@ DeleteFace( return; } - LOD_FaceInd last = LOD_FaceInd(faces.end() - faces.begin() - 1); + LOD_FaceInd last = LOD_FaceInd(size_t (faces.end() - faces.begin() - 1)); if (!(last == f)) { diff --git a/intern/elbeem/intern/solver_init.cpp b/intern/elbeem/intern/solver_init.cpp index c953d2f47da..a873f3c6987 100644 --- a/intern/elbeem/intern/solver_init.cpp +++ b/intern/elbeem/intern/solver_init.cpp @@ -694,7 +694,7 @@ bool LbmFsgrSolver::initializeSolverMemory() double maxDefaultMemChunk = 2.*1024.*1024.*1024.; //std::cerr<<" memEstFine "<< memEstFine <<" maxWin:" < maxWinMemChunk) { + if(sizeof(void *)==4 && memEstFine>maxWinMemChunk) { memBlockAllocProblem = true; } #endif // WIN32 diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 82a76b3c706..f5c7c08ebfe 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -42,6 +42,14 @@ #include "GHOST_SystemWin32.h" +// win64 doesn't define GWL_USERDATA +#ifdef WIN32 +#ifndef GWL_USERDATA +#define GWL_USERDATA GWLP_USERDATA +#define GWL_WNDPROC GWLP_WNDPROC +#endif +#endif + /* * According to the docs the mouse wheel message is supported from windows 98 * upwards. Leaving WINVER at default value, the WM_MOUSEWHEEL message and the @@ -302,6 +310,15 @@ GHOST_TSuccess GHOST_SystemWin32::init() { GHOST_TSuccess success = GHOST_System::init(); + /* Disable scaling on high DPI displays on Vista */ + HMODULE user32 = ::LoadLibraryA("user32.dll"); + typedef BOOL (WINAPI * LPFNSETPROCESSDPIAWARE)(); + LPFNSETPROCESSDPIAWARE SetProcessDPIAware = + (LPFNSETPROCESSDPIAWARE)GetProcAddress(user32, "SetProcessDPIAware"); + if (SetProcessDPIAware) + SetProcessDPIAware(); + FreeLibrary(user32); + // Determine whether this system has a high frequency performance counter. */ m_hasPerformanceCounter = ::QueryPerformanceFrequency((LARGE_INTEGER*)&m_freq) == TRUE; if (m_hasPerformanceCounter) { diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index ff1bf51bbb5..3003e0b8b14 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -488,12 +488,12 @@ GHOST_SystemX11::processEvent(XEvent *xe) data.changed = 1; data.delta = xcme.data.s[8] - data.time; data.time = xcme.data.s[8]; - data.tx = xcme.data.s[2]; - data.ty = xcme.data.s[3]; - data.tz = xcme.data.s[4]; + data.tx = xcme.data.s[2] >> 2; + data.ty = xcme.data.s[3] >> 2; + data.tz = xcme.data.s[4] >> 2; data.rx = xcme.data.s[5]; data.ry = xcme.data.s[6]; - data.rz = xcme.data.s[7]; + data.rz =-xcme.data.s[7]; g_event = new GHOST_EventNDOF(getMilliSeconds(), GHOST_kEventNDOFMotion, window, data); diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index 905b2f7ac63..fef58d071a4 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -48,6 +48,14 @@ #define M_PI 3.1415926536 #endif +// win64 doesn't define GWL_USERDATA +#ifdef WIN32 +#ifndef GWL_USERDATA +#define GWL_USERDATA GWLP_USERDATA +#define GWL_WNDPROC GWLP_WNDPROC +#endif +#endif + LPCSTR GHOST_WindowWin32::s_windowClassName = "GHOST_WindowClass"; const int GHOST_WindowWin32::s_maxTitleLength = 128; HGLRC GHOST_WindowWin32::s_firsthGLRc = NULL; diff --git a/intern/iksolver/intern/IK_QTask.h b/intern/iksolver/intern/IK_QTask.h index c291a0e7e50..4d469d737f8 100644 --- a/intern/iksolver/intern/IK_QTask.h +++ b/intern/iksolver/intern/IK_QTask.h @@ -74,7 +74,7 @@ public: virtual bool PositionTask() const { return false; } - virtual void Scale(float scale) {} + virtual void Scale(float) {} protected: int m_id; diff --git a/intern/moto/include/GEN_Map.h b/intern/moto/include/GEN_Map.h index db3335d6110..9f56924419e 100644 --- a/intern/moto/include/GEN_Map.h +++ b/intern/moto/include/GEN_Map.h @@ -82,6 +82,24 @@ public: } return 0; } + + Key* getKey(int index) { + int count=0; + for (int i=0;im_key; + } + bucket = bucket->m_next; + count++; + } + } + return 0; + } void clear() { for (int i = 0; i < m_num_buckets; ++i) { diff --git a/intern/moto/include/MT_random.h b/intern/moto/include/MT_random.h index d7da546cf03..3afe1dd1662 100644 --- a/intern/moto/include/MT_random.h +++ b/intern/moto/include/MT_random.h @@ -31,10 +31,10 @@ #include -#define MT_RAND_MAX ULONG_MAX +#define MT_RAND_MAX UINT_MAX -extern void MT_srand(unsigned long); -extern unsigned long MT_rand(); +extern void MT_srand(unsigned int); +extern unsigned int MT_rand(); #endif diff --git a/intern/moto/intern/MT_random.cpp b/intern/moto/intern/MT_random.cpp index 96cb394d3da..b8302e093ca 100644 --- a/intern/moto/intern/MT_random.cpp +++ b/intern/moto/intern/MT_random.cpp @@ -76,11 +76,11 @@ #define TEMPERING_SHIFT_T(y) (y << 15) #define TEMPERING_SHIFT_L(y) (y >> 18) -static unsigned long mt[N]; /* the array for the state vector */ +static unsigned int mt[N]; /* the array for the state vector */ static int mti = N+1; /* mti==N+1 means mt[N] is not initialized */ /* initializing the array with a NONZERO seed */ -void MT_srand(unsigned long seed) +void MT_srand(unsigned int seed) { /* setting initial seeds to mt[N] using */ /* the generator Line 25 of Table 1 in */ @@ -91,12 +91,12 @@ void MT_srand(unsigned long seed) mt[mti] = (69069 * mt[mti-1]) & 0xffffffff; } -unsigned long MT_rand() +unsigned int MT_rand() { - static unsigned long mag01[2] = { 0x0, MATRIX_A }; + static unsigned int mag01[2] = { 0x0, MATRIX_A }; /* mag01[x] = x * MATRIX_A for x=0,1 */ - unsigned long y; + unsigned int y; if (mti >= N) { /* generate N words at one time */ int kk; -- cgit v1.2.3 From 9bf0bfcae74f27e5bc2d5b20a70b21c3668542e4 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 21 Jul 2008 13:47:42 +0000 Subject: Fix for crash with fc and quality < 5 (reported by Nudel) --- intern/elbeem/intern/mvmcoords.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'intern') diff --git a/intern/elbeem/intern/mvmcoords.cpp b/intern/elbeem/intern/mvmcoords.cpp index f8ae11ea71d..ac954b956d0 100644 --- a/intern/elbeem/intern/mvmcoords.cpp +++ b/intern/elbeem/intern/mvmcoords.cpp @@ -32,7 +32,9 @@ void MeanValueMeshCoords::calculateMVMCs(vector &reference_vertices, mNumVerts = (int)reference_vertices.size(); for (vector::iterator iter = points.begin(); iter != points.end(); ++iter, ++i) { + /* if(i%(points.size()/10)==1) debMsgStd("MeanValueMeshCoords::calculateMVMCs",DM_MSG,"Computing weights, points: "< Date: Tue, 22 Jul 2008 14:56:02 +0000 Subject: Bugfix: Pasting non-text data (or trying to retrieve non-text data from the clipboard) crashed blender on Windows. --- intern/ghost/intern/GHOST_SystemWin32.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index f5c7c08ebfe..0b42fb80295 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -919,6 +919,8 @@ GHOST_TUns8* GHOST_SystemWin32::getClipboard(int flag) const if ( OpenClipboard(NULL) ) { HANDLE hData = GetClipboardData( CF_TEXT ); + if (hData == NULL) + return NULL; buffer = (char*)GlobalLock( hData ); temp_buff = (char*) malloc(strlen(buffer)+1); -- cgit v1.2.3 From 6d0e840648b1349302ea20891598806beddb6714 Mon Sep 17 00:00:00 2001 From: Ian Thompson Date: Tue, 22 Jul 2008 15:31:22 +0000 Subject: Bug fix for the bug fix. Wasn't closing the clipboard before returning. Thanks b333rt for catching this. --- intern/ghost/intern/GHOST_SystemWin32.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 0b42fb80295..7bc20d38739 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -917,10 +917,12 @@ GHOST_TUns8* GHOST_SystemWin32::getClipboard(int flag) const char *buffer; char *temp_buff; - if ( OpenClipboard(NULL) ) { + if ( IsClipboardFormatAvailable(CF_TEXT) && OpenClipboard(NULL) ) { HANDLE hData = GetClipboardData( CF_TEXT ); - if (hData == NULL) + if (hData == NULL) { + CloseClipboard(); return NULL; + } buffer = (char*)GlobalLock( hData ); temp_buff = (char*) malloc(strlen(buffer)+1); -- cgit v1.2.3 From d7fecc9e963d8823d3e6a045c96d3a166ac031a6 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Fri, 25 Jul 2008 18:57:16 +0000 Subject: Fluid control: WIP commit before weekend, not working is crashing on the first 3 frames --- intern/elbeem/extern/elbeem.h | 5 ++++- intern/elbeem/intern/controlparticles.cpp | 8 ++++++-- intern/elbeem/intern/elbeem.cpp | 8 ++++++++ intern/elbeem/intern/ntl_ray.cpp | 3 ++- intern/elbeem/intern/ntl_world.cpp | 15 +++++++++++---- intern/elbeem/intern/solver_control.cpp | 19 ++++++++++++++----- 6 files changed, 45 insertions(+), 13 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h index 2cee22a62a4..e29890aba44 100644 --- a/intern/elbeem/extern/elbeem.h +++ b/intern/elbeem/extern/elbeem.h @@ -32,7 +32,7 @@ typedef struct elbeemSimulationSettings { short version; /* id number of simulation domain, needed if more than a * single domain should be simulated */ - short domainId; + short domainId; // unused within blender /* geometrical extent */ float geoStart[3], geoSize[3]; @@ -187,6 +187,9 @@ void elbeemResetSettings(struct elbeemSimulationSettings*); // start fluidsim init (returns !=0 upon failure) int elbeemInit(void); +// frees fluidsim +int elbeemFree(void); + // start fluidsim init (returns !=0 upon failure) int elbeemAddDomain(struct elbeemSimulationSettings*); diff --git a/intern/elbeem/intern/controlparticles.cpp b/intern/elbeem/intern/controlparticles.cpp index 75b7e9bfd80..90bc99cada7 100644 --- a/intern/elbeem/intern/controlparticles.cpp +++ b/intern/elbeem/intern/controlparticles.cpp @@ -57,6 +57,7 @@ void ControlParticles::initBlenderTest() { initTime(0. , 1.); } +// blender control object gets converted to mvm flui control object int ControlParticles::initFromObject(ntlGeometryObjModel *model) { vector triangles; vector vertices; @@ -73,6 +74,7 @@ int ControlParticles::initFromObject(ntlGeometryObjModel *model) { printf("a animated? %d\n", model->getIsAnimated()); printf("b animated? %d\n", model->getMeshAnimated()); */ + model->setGeoInitType(FGI_FLUID); model->getTriangles(mCPSTimeStart, &triangles, &vertices, &normals, 1 ); @@ -137,7 +139,7 @@ int ControlParticles::initFromObject(ntlGeometryObjModel *model) { // init first set, check dist ControlParticleSet firstcps; //T mPartSets.push_back(firstcps); - mPartSets[mPartSets.size()-1].time = (gfxReal)0.; + mPartSets[mPartSets.size()-1].time = mCPSTimeStart; vector useCP; for(int i=0; i<(int)inspos.size(); i++) { @@ -1378,8 +1380,10 @@ void ControlParticles::calculateCpInfluenceOpt(ControlParticle *cp, LbmVec fluid #if (CP_PROJECT2D==1) && (defined(MAIN_2D) || LBMDIM==2) // fillFactor *= 2.0 *0.75 * pdistance; // 2d>3d sampling #endif // (CP_PROJECT2D==1) && (defined(MAIN_2D) || LBMDIM==2) + + LbmFloat signum = getInfluenceAttraction() > 0.0 ? 1.0 : -1.0; cp->density += falloffAtt * fillFactor; - force->forceAtt += posDelta *cp->densityWeight *cp->influence; + force->forceAtt += posDelta *cp->densityWeight *cp->influence *signum; force->weightAtt += falloffAtt*cp->densityWeight *cp->influence; LbmFloat falloffVel = 0.; //CPKernel::kernel(cpfo * 1.0, pdistance); diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp index 0deed5082b0..c9e6bc7989b 100644 --- a/intern/elbeem/intern/elbeem.cpp +++ b/intern/elbeem/intern/elbeem.cpp @@ -96,6 +96,13 @@ int elbeemInit() { return 0; } +// fluidsim end +extern "C" +int elbeemFree() { + + return 0; +} + // start fluidsim init extern "C" int elbeemAddDomain(elbeemSimulationSettings *settings) { @@ -253,6 +260,7 @@ int elbeemSimulate(void) { if(getElbeemState() != SIMWORLD_STOP) { // ok, we're done... delete gpWorld; + gpWorld = NULL; debMsgStd("elbeemSimulate",DM_NOTIFY, "El'Beem simulation done, time: "<::iterator iter = mGeos.begin(); iter != mGeos.end(); iter++) { //errMsg("ntlScene::~ntlScene","Deleting obj "<<(*iter)->getName() ); diff --git a/intern/elbeem/intern/ntl_world.cpp b/intern/elbeem/intern/ntl_world.cpp index 21d9d63aac0..c7aa3495c93 100644 --- a/intern/elbeem/intern/ntl_world.cpp +++ b/intern/elbeem/intern/ntl_world.cpp @@ -236,10 +236,15 @@ ntlWorld::~ntlWorld() { delete mpGlob->getRenderScene(); delete mpGlob->getSimScene(); - delete mpGlob; - delete mpLightList; - delete mpPropList; - delete mpSims; + + delete mpGlob; + + + // these get assigned to mpGlob but not freed there + delete mpLightList; + delete mpPropList; // materials + delete mpSims; + #ifndef NOGUI if(mpOpenGLRenderer) delete mpOpenGLRenderer; #endif // NOGUI @@ -895,6 +900,8 @@ ntlRenderGlobals::ntlRenderGlobals() : ntlRenderGlobals::~ntlRenderGlobals() { if(mpOpenGlAttr) delete mpOpenGlAttr; if(mpBlenderAttr) delete mpBlenderAttr; + + } diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp index ee032f17f8a..6b4c31b8f3e 100644 --- a/intern/elbeem/intern/solver_control.cpp +++ b/intern/elbeem/intern/solver_control.cpp @@ -236,7 +236,6 @@ LbmFsgrSolver::initCpdata() // dont load any file cset->mContrPartFile = string(""); - // TODO dg: switch to channels later cset->mcForceAtt = obj->getCpsAttrFStr(); cset->mcRadiusAtt = obj->getCpsAttrFRad(); cset->mcForceVel = obj->getCpsVelFStr(); @@ -491,8 +490,8 @@ LbmFsgrSolver::handleCpdata() // init for current time for(int cpssi=0; cpssi<(int)mpControl->mCons.size(); cpssi++) { ControlParticles *cparts = mpControl->mCons[cpssi]->mCparts; - LbmControlSet *cset = mpControl->mCons[cpssi]; + cparts->setRadiusAtt(cset->mcRadiusAtt.get(mSimulationTime)); cparts->setRadiusVel(cset->mcRadiusVel.get(mSimulationTime)); cparts->setInfluenceAttraction(cset->mcForceAtt.get(mSimulationTime) ); @@ -506,18 +505,22 @@ LbmFsgrSolver::handleCpdata() cparts->setInfluenceVelocity( cset->mcForceVel.get(mSimulationTime), mLevel[fineLev].timestep ); cparts->setLastOffset( vec2L(cset->mcCpOffset.get(mSimulationTime-mLevel[fineLev].timestep)) ); cparts->setLastScale( vec2L(cset->mcCpScale.get(mSimulationTime-mLevel[fineLev].timestep)) ); + } // check actual values - LbmFloat iatt = mpControl->mCons[0]->mCparts->getInfluenceAttraction(); + LbmFloat iatt = ABS(mpControl->mCons[0]->mCparts->getInfluenceAttraction()); LbmFloat ivel = mpControl->mCons[0]->mCparts->getInfluenceVelocity(); LbmFloat imaxd = mpControl->mCons[0]->mCparts->getInfluenceMaxdist(); //errMsg("FINCIT","iatt="<getVertex1() << "," << e->getVertex2(); + return stream; +} +#endif + diff --git a/intern/boolop/intern/BOP_Edge.h b/intern/boolop/intern/BOP_Edge.h index 13426f6e63c..fb352620c17 100644 --- a/intern/boolop/intern/BOP_Edge.h +++ b/intern/boolop/intern/BOP_Edge.h @@ -29,6 +29,7 @@ #define BOP_EDGE_H #include "BOP_Indexs.h" +#include "BOP_Misc.h" class BOP_Edge { @@ -47,6 +48,10 @@ public: inline unsigned int getNumFaces(){return m_faces.size();}; inline BOP_Indexs &getFaces(){return m_faces;}; void addFace(BOP_Index face); +#ifdef BOP_DEBUG + friend ostream &operator<<(ostream &stream, BOP_Edge *e); +#endif + }; #endif diff --git a/intern/boolop/intern/BOP_Face.cpp b/intern/boolop/intern/BOP_Face.cpp index 12c94624517..01308de3e5d 100644 --- a/intern/boolop/intern/BOP_Face.cpp +++ b/intern/boolop/intern/BOP_Face.cpp @@ -402,6 +402,7 @@ bool BOP_Face4::getEdgeIndex(BOP_Index v1, BOP_Index v2, unsigned int &e) return true; } +#ifdef BOP_DEBUG /** * Implements operator <<. */ @@ -421,3 +422,4 @@ ostream &operator<<(ostream &stream, BOP_Face *f) return stream; } +#endif diff --git a/intern/boolop/intern/BOP_Face.h b/intern/boolop/intern/BOP_Face.h index e16425f78b3..965882db732 100644 --- a/intern/boolop/intern/BOP_Face.h +++ b/intern/boolop/intern/BOP_Face.h @@ -32,6 +32,7 @@ #include "MT_Plane3.h" #include "BOP_Indexs.h" #include "BOP_BBox.h" +#include "BOP_Misc.h" #include #include using namespace std; @@ -80,7 +81,9 @@ public: virtual void replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex) = 0; virtual bool containsVertex(BOP_Index v) = 0; +#ifdef BOP_DEBUG friend ostream &operator<<(ostream &stream, BOP_Face *f); +#endif }; class BOP_Face3: public BOP_Face diff --git a/intern/boolop/intern/BOP_Mesh.cpp b/intern/boolop/intern/BOP_Mesh.cpp index 5659cd62a3f..685478fae39 100644 --- a/intern/boolop/intern/BOP_Mesh.cpp +++ b/intern/boolop/intern/BOP_Mesh.cpp @@ -794,7 +794,8 @@ bool BOP_Mesh::isClosedMesh() } -/** *************************************************************************** +#ifdef BOP_DEBUG +/****************************************************************************** * DEBUG METHODS * * This functions are used to test the mesh state and debug program errors. * ******************************************************************************/ @@ -1075,3 +1076,4 @@ void BOP_Mesh::updatePlanes() } } +#endif diff --git a/intern/boolop/intern/BOP_Mesh.h b/intern/boolop/intern/BOP_Mesh.h index 9abff52545f..46c8fa53d20 100644 --- a/intern/boolop/intern/BOP_Mesh.h +++ b/intern/boolop/intern/BOP_Mesh.h @@ -1,10 +1,3 @@ -/* - * TEMPORARY defines to enable hashing support - */ - -#define HASH(x) ((x) >> 5) /* each "hash" covers 32 indices */ -// #define HASH_PRINTF_DEBUG /* uncomment to enable debug output */ - /** * * $Id$ diff --git a/intern/boolop/intern/BOP_Misc.h b/intern/boolop/intern/BOP_Misc.h new file mode 100644 index 00000000000..0e009d8ee8d --- /dev/null +++ b/intern/boolop/intern/BOP_Misc.h @@ -0,0 +1,43 @@ +/** + * + * $Id: BOP_Misc.h 14444 2008-04-16 22:40:48Z khughes $ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): Ken Hughes + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/* + * This file contains various definitions used across the modules + */ + +/* + * define operator>> for faces, edges and vertices, and also add some + * debugging functions for displaying various internal data structures + */ + +// #define BOP_DEBUG + +#define HASH(x) ((x) >> 5) /* each "hash" covers 32 indices */ +// #define HASH_PRINTF_DEBUG /* uncomment to enable debug output */ diff --git a/intern/boolop/intern/BOP_Vertex.cpp b/intern/boolop/intern/BOP_Vertex.cpp index a429c26d204..edb53ea6a59 100644 --- a/intern/boolop/intern/BOP_Vertex.cpp +++ b/intern/boolop/intern/BOP_Vertex.cpp @@ -89,3 +89,22 @@ bool BOP_Vertex::containsEdge(BOP_Index i) return false; } + +#ifdef BOP_DEBUG +/** + * Implements operator <<. + */ +#include + +ostream &operator<<(ostream &stream, BOP_Vertex *v) +{ + char aux[20]; + BOP_stringTAG(v->m_tag,aux); + MT_Point3 point = v->getPoint(); + stream << setprecision(6) << showpoint << fixed; + stream << "Vertex[" << point[0] << "," << point[1] << ","; + stream << point[2] << "] (" << aux << ")"; + return stream; +} +#endif + diff --git a/intern/boolop/intern/BOP_Vertex.h b/intern/boolop/intern/BOP_Vertex.h index 3a9895df6d3..18b2f168f8c 100644 --- a/intern/boolop/intern/BOP_Vertex.h +++ b/intern/boolop/intern/BOP_Vertex.h @@ -31,6 +31,7 @@ #include "BOP_Tag.h" #include "BOP_Indexs.h" #include "MT_Point3.h" +#include "BOP_Misc.h" class BOP_Vertex { @@ -52,6 +53,10 @@ public: inline MT_Point3 getPoint() const { return m_point;}; inline BOP_TAG getTAG() { return m_tag;}; inline void setTAG(BOP_TAG t) { m_tag = t;}; +#ifdef BOP_DEBUG + friend ostream &operator<<(ostream &stream, BOP_Vertex *v); +#endif + }; #endif -- cgit v1.2.3 From cb0aa467cd7acb1392897bf436d808de5b40e552 Mon Sep 17 00:00:00 2001 From: Ken Hughes Date: Thu, 31 Jul 2008 18:37:03 +0000 Subject: Tools ----- New boolean merge algorithm. The current code often does a poor job of merging tris and quads after the operation, resulting in many unnecessary faces. This commit add a new algorithm which takes advantage of topology information saved in the interal BOP structures. The file intern/boolop/intern/BOP_Misc.h has two #defines which control which algorithm(s) are compiled. They are set now to compile both, with the new algorithm as the default. The original algorithm can be enabled by setting the "rt" debugging button on the Scene panel (F10) to 100. One note: the current boolean code still occasionally creates a non-manifold mesh from an operation on two manifold meshes. The original merge algorithm would sometimes "close" these meshes and sometimes not. The new algorithms behaves the same way, but sometimes closes a mesh the original would not and sometimes leaves open a mesh the original would close. My fairly extensive tests did not indicate any significant difference in the percentage of final non-manifold meshes. --- intern/boolop/intern/BOP_Edge.cpp | 28 + intern/boolop/intern/BOP_Edge.h | 8 + intern/boolop/intern/BOP_Interface.cpp | 30 +- intern/boolop/intern/BOP_Merge.cpp | 3 + intern/boolop/intern/BOP_Merge.h | 5 + intern/boolop/intern/BOP_Merge2.cpp | 944 +++++++++++++++++++++++++++++++++ intern/boolop/intern/BOP_Merge2.h | 99 ++++ intern/boolop/intern/BOP_Mesh.cpp | 7 + intern/boolop/intern/BOP_Misc.h | 11 + intern/boolop/intern/BOP_Tag.h | 2 +- 10 files changed, 1135 insertions(+), 2 deletions(-) create mode 100644 intern/boolop/intern/BOP_Merge2.cpp create mode 100644 intern/boolop/intern/BOP_Merge2.h (limited to 'intern') diff --git a/intern/boolop/intern/BOP_Edge.cpp b/intern/boolop/intern/BOP_Edge.cpp index dc6222fcd4e..44e7d5cb567 100644 --- a/intern/boolop/intern/BOP_Edge.cpp +++ b/intern/boolop/intern/BOP_Edge.cpp @@ -75,6 +75,28 @@ void BOP_Edge::replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex) else if (m_vertexs[1] == oldIndex) m_vertexs[1] = newIndex; } +#ifdef BOP_NEW_MERGE + +/** + * Returns if this edge contains the specified face index. + * @param i face index + * @return true if this edge contains the specified face index, false otherwise + */ +bool BOP_Edge::removeFace(BOP_Index i) +{ + int pos=0; + for(BOP_IT_Indexs it = m_faces.begin();it!=m_faces.end();pos++,it++) { + if ((*it) == i) { + m_faces.erase(it); + return true; + } + } + + return false; +} + +#endif + #ifdef BOP_DEBUG #include @@ -86,6 +108,12 @@ using namespace std; ostream &operator<<(ostream &stream, BOP_Edge *e) { stream << "Edge[" << e->getVertex1() << "," << e->getVertex2(); +#ifdef BOP_NEW_MERGE + if(e->m_used) + stream << "] (used)"; + else + stream << "] (unused)"; +#endif return stream; } #endif diff --git a/intern/boolop/intern/BOP_Edge.h b/intern/boolop/intern/BOP_Edge.h index fb352620c17..a817b3d624f 100644 --- a/intern/boolop/intern/BOP_Edge.h +++ b/intern/boolop/intern/BOP_Edge.h @@ -36,6 +36,9 @@ class BOP_Edge private: BOP_Index m_vertexs[2]; BOP_Indexs m_faces; +#ifdef BOP_NEW_MERGE + bool m_used; +#endif bool containsFace(BOP_Index i); @@ -48,6 +51,11 @@ public: inline unsigned int getNumFaces(){return m_faces.size();}; inline BOP_Indexs &getFaces(){return m_faces;}; void addFace(BOP_Index face); +#ifdef BOP_NEW_MERGE + bool removeFace(BOP_Index i); + bool getUsed() { return m_used;}; + void setUsed(bool setting) { m_used=setting;}; +#endif #ifdef BOP_DEBUG friend ostream &operator<<(ostream &stream, BOP_Edge *e); #endif diff --git a/intern/boolop/intern/BOP_Interface.cpp b/intern/boolop/intern/BOP_Interface.cpp index 2a198103931..898ca708204 100644 --- a/intern/boolop/intern/BOP_Interface.cpp +++ b/intern/boolop/intern/BOP_Interface.cpp @@ -33,9 +33,12 @@ #include "BOP_Mesh.h" #include "BOP_Face2Face.h" #include "BOP_Merge.h" +#include "BOP_Merge2.h" #include "BOP_Chrono.h" -//#define DEBUG +#if defined(BOP_ORIG_MERGE) && defined(BOP_NEW_MERGE) +#include "../../source/blender/blenkernel/BKE_global.h" +#endif BoolOpState BOP_intersectionBoolOp(BOP_Mesh* meshC, BOP_Faces* facesA, @@ -208,7 +211,32 @@ BoolOpState BOP_intersectionBoolOp(BOP_Mesh* meshC, #endif // Merge faces +#ifdef BOP_ORIG_MERGE +#ifndef BOP_NEW_MERGE BOP_Merge::getInstance().mergeFaces(meshC,numVertices); +#endif +#endif + +#ifdef BOP_NEW_MERGE +#ifndef BOP_ORIG_MERGE + BOP_Merge2::getInstance().mergeFaces(meshC,numVertices); +#else + static int state = -1; + if (G.rt == 100) { + if( state != 1 ) { + cout << "Boolean code using old merge technique." << endl; + state = 1; + } + BOP_Merge::getInstance().mergeFaces(meshC,numVertices); + } else { + if( state != 0 ) { + cout << "Boolean code using new merge technique." << endl; + state = 0; + } + BOP_Merge2::getInstance().mergeFaces(meshC,numVertices); + } +#endif +#endif #ifdef DEBUG c = chrono.stamp(); t += c; diff --git a/intern/boolop/intern/BOP_Merge.cpp b/intern/boolop/intern/BOP_Merge.cpp index 1e4139ab971..012d3409187 100644 --- a/intern/boolop/intern/BOP_Merge.cpp +++ b/intern/boolop/intern/BOP_Merge.cpp @@ -30,6 +30,7 @@ #include "BOP_Merge.h" +#ifdef BOP_ORIG_MERGE #ifdef _MSC_VER #if _MSC_VER < 1300 @@ -802,3 +803,5 @@ void BOP_Merge::getFaces(BOP_LFaces &facesByOriginalFace, BOP_Indexs vertices, B } } } + +#endif /* BOP_ORIG_MERGE */ diff --git a/intern/boolop/intern/BOP_Merge.h b/intern/boolop/intern/BOP_Merge.h index 88999b2e734..ceb8ec10690 100644 --- a/intern/boolop/intern/BOP_Merge.h +++ b/intern/boolop/intern/BOP_Merge.h @@ -28,6 +28,9 @@ #ifndef BOP_MERGE_H #define BOP_MERGE_H +#include "BOP_Misc.h" + +#ifdef BOP_ORIG_MERGE #include "BOP_Mesh.h" #include "BOP_Tag.h" #include "BOP_MathUtils.h" @@ -68,4 +71,6 @@ class BOP_Merge { void mergeFaces(BOP_Mesh *m, BOP_Index v); }; +#endif /* BOP_ORIG_MERGE */ + #endif diff --git a/intern/boolop/intern/BOP_Merge2.cpp b/intern/boolop/intern/BOP_Merge2.cpp new file mode 100644 index 00000000000..bbf3f8ba702 --- /dev/null +++ b/intern/boolop/intern/BOP_Merge2.cpp @@ -0,0 +1,944 @@ +/** + * + * $Id: BOP_Merge22.cpp 14444 2008-04-16 22:40:48Z hos $ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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): Marc Freixas, Ken Hughes + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include "BOP_Merge2.h" + +#ifdef BOP_NEW_MERGE + +static void deleteFace(BOP_Mesh *m, BOP_Face *face); + +/** + * SINGLETON (use method BOP_Merge2.getInstance). + */ +BOP_Merge2 BOP_Merge2::SINGLETON; + +#ifdef BOP_DEBUG +void dumpmesh ( BOP_Mesh *m, bool force ) +{ + unsigned int nonmanifold = 0; + { + BOP_Edges edges = m->getEdges(); + int count = 0; + for (BOP_IT_Edges edge = edges.begin(); edge != edges.end(); + ++count, ++edge) { + if (!(*edge)->getUsed() && (*edge)->getFaces().size() == 0 ) continue; + BOP_Vertex * v1 = m->getVertex((*edge)->getVertex1()); + BOP_Vertex * v2 = m->getVertex((*edge)->getVertex2()); + + if(v1->getTAG()!= BROKEN || v2->getTAG()!= BROKEN ) { + int fcount = 0; + BOP_Indexs faces = (*edge)->getFaces(); + for (BOP_IT_Indexs face = faces.begin(); face != faces.end(); face++) { + BOP_Face *f = m->getFace(*face); + if(f->getTAG()== UNCLASSIFIED) ++fcount; + } + + + if(fcount !=0 && fcount !=2 ) { + ++nonmanifold; + } + } + } + if (!force && nonmanifold == 0) return; + } + if( nonmanifold ) + cout << nonmanifold << " edges detected" << endl; +#ifdef DEBUG + cout << "---------------------------" << endl; + + BOP_Edges edges = m->getEdges(); + int count = 0; + for (BOP_IT_Edges edge = edges.begin(); edge != edges.end(); + ++count, ++edge) { + BOP_Vertex * v1 = m->getVertex((*edge)->getVertex1()); + BOP_Vertex * v2 = m->getVertex((*edge)->getVertex2()); + + if(v1->getTAG()!= BROKEN || v2->getTAG()!= BROKEN ) { + int fcount = 0; + BOP_Indexs faces = (*edge)->getFaces(); + cout << count << ", " << (*edge) << ", " << faces.size() << endl; + for (BOP_IT_Indexs face = faces.begin(); face != faces.end(); face++) { + BOP_Face *f = m->getFace(*face); + if(f->getTAG()== UNCLASSIFIED) ++fcount; + cout << " face " << f << endl; + } + + + if(fcount !=0 && fcount !=2 ) + cout << " NON-MANIFOLD" << endl; + } + } + + BOP_Faces faces = m->getFaces(); + count = 0; + for (BOP_IT_Faces face = faces.begin(); face != faces.end(); face++) { + if( count < 12*2 || (*face)->getTAG() != BROKEN ) { + cout << count << ", " << *face << endl; + } + ++count; + } + + BOP_Vertexs verts = m->getVertexs(); + count = 0; + for (BOP_IT_Vertexs vert = verts.begin(); vert != verts.end(); vert++) { + cout << count++ << ", " << *vert << " " << (*vert)->getNumEdges() << endl; + BOP_Indexs edges = (*vert)->getEdges(); + for( BOP_IT_Indexs it = edges.begin(); it != edges.end(); ++it) { + BOP_Edge *edge = m->getEdge(*it); + cout << " " << edge << endl; + } + } + cout << "===========================" << endl; +#endif +} +#endif + +/** + * Simplifies a mesh, merging its faces. + * @param m mesh + * @param v index of the first mergeable vertex (can be removed by merge) + */ + +void BOP_Merge2::mergeFaces(BOP_Mesh *m, BOP_Index v) +{ + m_mesh = m; + +#ifdef DEBUG + cout << "##############################" << endl; +#endif + cleanup( ); + + m_firstVertex = v; + bool cont = false; + + // Merge faces + mergeFaces(); + + do { + // Add quads ... + cont = createQuads(); + // ... and merge new faces + if( cont ) cont = mergeFaces(); + +#ifdef DEBUG + cout << "called mergeFaces " << cont << endl; +#endif + // ... until the merge is not succesful + } while(cont); +} + +void clean_nonmanifold( BOP_Mesh *m ) +{ + return; + + BOP_Edges nme; + BOP_Edges e = m->getEdges(); + for( BOP_IT_Edges it = e.begin(); it != e.end(); ++it ) { + BOP_Indexs faces = (*it)->getFaces(); + if( faces.size() & ~2 ) + nme.push_back(*it); + } + if (nme.size() == 0) return; + for( BOP_IT_Edges it = nme.begin(); it != nme.end(); ++it ) { + if( (*it)->getFaces().size() > 1 ) { + BOP_Indexs faces = (*it)->getFaces(); + for( BOP_IT_Indexs face = faces.begin(); face != faces.end(); ++face ) { + MT_Point3 vertex1 = m->getVertex(m->getFace(*face)->getVertex(0))->getPoint(); + MT_Point3 vertex2 = m->getVertex(m->getFace(*face)->getVertex(1))->getPoint(); + MT_Point3 vertex3 = m->getVertex(m->getFace(*face)->getVertex(2))->getPoint(); + if (BOP_collinear(vertex1,vertex2,vertex3)) // collinear triangle + deleteFace(m,m->getFace(*face)); + } + continue; + } + BOP_Face *oface1 = m->getFace((*it)->getFaces().front()); + BOP_Face *oface2, *tmpface; + BOP_Index first =(*it)->getVertex1(); + BOP_Index next =(*it)->getVertex2(); + BOP_Index last = first; + unsigned short facecount = 0; + bool found = false; + BOP_Indexs vertList; +#ifdef DEBUG + cout << " first edge is " << (*it) << endl; +#endif + vertList.push_back(first); + BOP_Edge *edge; + while(true) { + BOP_Vertex *vert = m->getVertex(next); + BOP_Indexs edges = vert->getEdges(); + edge = NULL; + for( BOP_IT_Indexs eit = edges.begin(); eit != edges.end(); ++eit) { + edge = m->getEdge(*eit); + if( edge->getFaces().size() > 1) { + edge = NULL; + continue; + } + if( edge->getVertex1() == next && edge->getVertex2() != last ) { + last = next; + next = edge->getVertex2(); + break; + } + if( edge->getVertex2() == next && edge->getVertex1() != last ) { + last = next; + next = edge->getVertex1(); + break; + } + edge = NULL; + } + if( !edge ) break; +#ifdef DEBUG + cout << " next edge is " << edge << endl; +#endif + tmpface = m->getFace(edge->getFaces().front()); + if( oface1->getOriginalFace() != tmpface->getOriginalFace() ) + oface2 = tmpface; + else + ++facecount; + vertList.push_back(last); + if( vertList.size() > 3 ) break; + if( next == first ) { + found = true; + break; + } + } + if(found) { + edge = *it; +#ifdef DEBUG + cout << " --> found a loop" << endl; +#endif + if( vertList.size() == 3 ) { + BOP_Face3 *face = (BOP_Face3 *)m->getFace(edge->getFaces().front()); + face->getNeighbours(first,last,next); + } else if( vertList.size() == 4 ) { + BOP_Face4 *face = (BOP_Face4 *)m->getFace(edge->getFaces().front()); + face->getNeighbours(first,last,next,last); + } else { +#ifdef DEBUG + cout << "loop has " << vertList.size() << "verts"; +#endif + continue; + } + if(facecount == 1) oface1 = oface2; + next = vertList[1]; + last = vertList[2]; + if( edge->getVertex2() == next ) { + BOP_Face3 *f = new BOP_Face3(next,first,last, + oface1->getPlane(),oface1->getOriginalFace()); + m->addFace( f ); +#ifdef DEBUG + cout << " face is backward: " << f << endl; +#endif + + } else { + BOP_Face3 *f = new BOP_Face3(last,first,next, + oface1->getPlane(),oface1->getOriginalFace()); + m->addFace( f ); +#ifdef DEBUG + cout << " face is forward: " << f << endl; +#endif + } + } + } +} + +/** + * Runs through mesh and makes sure vert/face/edge data is consistent. Most + * importantly: + * (1) mark edges which are no longer used + * (2) remove broken faces from edges + * (3) remove faces from mesh which have a single edge belonging to no other + * face (non-manifold edges) + */ + +void BOP_Merge2::cleanup( void ) +{ + BOP_Edges edges = m_mesh->getEdges(); + for (BOP_IT_Edges edge = edges.begin(); edge != edges.end(); ++edge) { + BOP_Indexs faces = (*edge)->getFaces(); + for (BOP_IT_Indexs face = faces.begin(); face != faces.end(); ++face) { + BOP_Face *f = m_mesh->getFace(*face); + if(f->getTAG()== UNCLASSIFIED) ; + else (*edge)->removeFace(*face); + } + if( (*edge)->getFaces().size() == 0) (*edge)->setUsed(false); + } + + BOP_Vertexs v = m_mesh->getVertexs(); + for( BOP_IT_Vertexs it = v.begin(); it != v.end(); ++it ) { + if( (*it)->getTAG() != BROKEN) { + BOP_Indexs edges = (*it)->getEdges(); + for(BOP_IT_Indexs i = edges.begin();i!=edges.end();i++) + if( m_mesh->getEdge((*i))->getUsed( ) == false) (*it)->removeEdge( *i ); + if( (*it)->getEdges().size() == 0 ) (*it)->setTAG(BROKEN); + } + } + // clean_nonmanifold( m_mesh ); +} + +/** + * Simplifies a mesh, merging its faces. + */ +bool BOP_Merge2::mergeFaces() +{ + BOP_Indexs mergeVertices; + BOP_Vertexs vertices = m_mesh->getVertexs(); + BOP_IT_Vertexs v = vertices.begin(); + const BOP_IT_Vertexs verticesEnd = vertices.end(); + + // Advance to first mergeable vertex + advance(v,m_firstVertex); + BOP_Index pos = m_firstVertex; + + // Add unbroken vertices to the list + while(v!=verticesEnd) { + if ((*v)->getTAG() != BROKEN) { + mergeVertices.push_back(pos); + } + + v++; + pos++; + } + + // Merge faces with that vertices + return mergeFaces(mergeVertices); +} + +/** + * remove edges from vertices when the vertex is removed + */ +void BOP_Merge2::freeVerts(BOP_Index v, BOP_Vertex *vert) +{ + BOP_Indexs edges = vert->getEdges(); + BOP_Vertex *other; + + for( BOP_IT_Indexs it = edges.begin(); it != edges.end(); ++it) { + BOP_Edge *edge = m_mesh->getEdge(*it); + BOP_Indexs edges2; + if( edge->getVertex1() != v ) + other = m_mesh->getVertex( edge->getVertex1() ); + else + other = m_mesh->getVertex( edge->getVertex2() ); + other->removeEdge(*it); + vert->removeEdge(*it); + } +} + +/** + * Simplifies a mesh, merging the faces with the specified vertices. + * @param mergeVertices vertices to test + * @return true if a face merge was performed + */ +bool BOP_Merge2::mergeFaces(BOP_Indexs &mergeVertices) +{ + // Check size > 0! + if (mergeVertices.size() == 0) return false; + bool didMerge = false; + + for( BOP_Index i = 0; i < mergeVertices.size(); ++i ) { + BOP_LFaces facesByOriginalFace; + BOP_Index v = mergeVertices[i]; + BOP_Vertex *vert = m_mesh->getVertex(v); +#ifdef DEBUG + cout << "i = " << i << ", v = " << v << ", vert = " << vert << endl; + if (v==48) + cout << "found vert 48" << endl; +#endif + if ( vert->getTAG() != BROKEN ) { + getFaces(facesByOriginalFace,v); + + switch (facesByOriginalFace.size()) { + case 0: + // v has no unbroken faces (so it's a new BROKEN vertex) + freeVerts( v, vert ); + vert->setTAG(BROKEN); + break; + case 2: { +#ifdef DEBUG + cout << "size of fBOF = " << facesByOriginalFace.size() << endl; +#endif + BOP_Faces ff = facesByOriginalFace.front(); + BOP_Faces fb = facesByOriginalFace.back(); + BOP_Index eindexs[2]; + int ecount = 0; + + // look for two edges adjacent to v which contain both ofaces + BOP_Indexs edges = vert->getEdges(); +#ifdef DEBUG + cout << " ff has " << ff.size() << " faces" << endl; + cout << " fb has " << fb.size() << " faces" << endl; + cout << " v has " << edges.size() << " edges" << endl; +#endif + for(BOP_IT_Indexs it = edges.begin(); it != edges.end(); + ++it ) { + BOP_Edge *edge = m_mesh->getEdge(*it); + BOP_Indexs faces = edge->getFaces(); +#ifdef DEBUG + cout << " " << edge << " has " << edge->getFaces().size() << " faces" << endl; +#endif + if( faces.size() == 2 ) { + BOP_Face *f0 = m_mesh->getFace(faces[0]); + BOP_Face *f1 = m_mesh->getFace(faces[1]); + if( f0->getOriginalFace() != f1->getOriginalFace() ) { +#ifdef DEBUG + cout << " " << f0 << endl; + cout << " " << f1 << endl; +#endif + eindexs[ecount++] = (*it); + } + } + } + if(ecount == 2) { +#ifdef DEBUG + cout << " edge indexes are " << eindexs[0]; + cout << " and " << eindexs[1] << endl; +#endif + BOP_Edge *edge = m_mesh->getEdge(eindexs[0]); + BOP_Index N = edge->getVertex1(); + if(N == v) N = edge->getVertex2(); +#ifdef DEBUG + cout << " ## OK, replace "<setTAG(BROKEN); + for(BOP_IT_Indexs it = edges.begin(); it != edges.end(); + ++it ) { + BOP_Edge *edge = m_mesh->getEdge(*it); + edge->setUsed(false); + } + didMerge = true; + } +#ifdef DEBUG + else { + cout << " HUH: ecount was " << ecount << endl; + } +#endif + } + break; + default: + break; + } + } + } + + return didMerge; +} + +void BOP_Merge2::mergeVertex(BOP_Faces &faces, BOP_Index v1, BOP_Index v2) +{ + for(BOP_IT_Faces face=faces.begin();face!=faces.end();face++) { + if( (*face)->size() == 3) + mergeVertex((BOP_Face3 *) *face, v1, v2); + else + mergeVertex((BOP_Face4 *) *face, v1, v2); + (*face)->setTAG(BROKEN); +#ifdef DEBUG + cout << " breaking " << (*face) << endl; +#endif + } +} + +/* + * Remove a face from the mesh and from each edges's face list + */ + +static void deleteFace(BOP_Mesh *m, BOP_Face *face) +{ + BOP_Index l2 = face->getVertex(0); + BOP_Faces faces = m->getFaces(); + for(int i = face->size(); i-- ; ) { + BOP_Indexs edges = m->getVertex(l2)->getEdges(); + BOP_Index l1 = face->getVertex(i); + for(BOP_IT_Indexs it1 = edges.begin(); it1 != edges.end(); ++it1 ) { + BOP_Edge *edge = m->getEdge(*it1); + if( ( edge->getVertex1() == l1 && edge->getVertex2() == l2 ) || + ( edge->getVertex1() == l2 && edge->getVertex2() == l1 ) ) { + BOP_Indexs ef = edge->getFaces(); + for(BOP_IT_Indexs it = ef.begin(); it != ef.end(); ++it ) { + if( m->getFace(*it) == face) { + edge->removeFace(*it); + break; + } + } + break; + } + } + l2 = l1; + } + face->setTAG(BROKEN); +} + +void BOP_Merge2::mergeVertex(BOP_Face3 *face, BOP_Index v1, BOP_Index v2) +{ + BOP_Index next, prev; + face->getNeighbours(v1,prev,next); + + // if new vertex is not already in the tri, make a new tri + if( prev != v2 && next != v2 ) { + m_mesh->addFace( new BOP_Face3(prev,v2,next, + face->getPlane(),face->getOriginalFace()) ); +#ifdef DEBUG + cout << "mv3: add " << prev << "," << v2 << "," << next << endl; + } else { + cout << "mv3: vertex already in tri: doing nothing" << endl; +#endif + } + deleteFace(m_mesh, face); +} + +void BOP_Merge2::mergeVertex(BOP_Face4 *face, BOP_Index v1, BOP_Index v2) +{ + BOP_Index next, prev, opp; + face->getNeighbours(v1,prev,next,opp); + + // if new vertex is already in the quad, replace quad with new tri + if( prev == v2 || next == v2 ) { + m_mesh->addFace( new BOP_Face3(prev,next,opp, + face->getPlane(),face->getOriginalFace()) ); +#ifdef DEBUG + cout << "mv4a: add " << prev << "," << next << "," << opp << endl; +#endif + } + // otherwise make a new quad + else { + m_mesh->addFace( new BOP_Face4(prev,v2,next,opp, + face->getPlane(),face->getOriginalFace()) ); +#ifdef DEBUG + cout << "mv4b: add "<getFaces(); + + // Merge mesh triangles + const BOP_IT_Faces facesIEnd = (faces.end()-1); + const BOP_IT_Faces facesJEnd = faces.end(); + for(BOP_IT_Faces faceI=faces.begin();faceI!=facesIEnd;faceI++) { +#ifdef OLD_QUAD + if ((*faceI)->getTAG() == BROKEN || (*faceI)->size() != 3) continue; + for(BOP_IT_Faces faceJ=(faceI+1);faceJ!=facesJEnd;faceJ++) { + if ((*faceJ)->getTAG() == BROKEN || (*faceJ)->size() != 3 || + (*faceJ)->getOriginalFace() != (*faceI)->getOriginalFace()) continue; + + + BOP_Face *faceK = createQuad((BOP_Face3*)*faceI,(BOP_Face3*)*faceJ); + if (faceK != NULL) { + // Set triangles to BROKEN + deleteFace(m_mesh, *faceI); + deleteFace(m_mesh, *faceJ); +#ifdef DEBUG + cout << "createQuad: del " << *faceI << endl; + cout << "createQuad: del " << *faceJ << endl; + cout << "createQuad: add " << faceK << endl; +#endif + quads.push_back(faceK); + break; + } + } +#else + if ((*faceI)->getTAG() == BROKEN ) continue; + for(BOP_IT_Faces faceJ=(faceI+1);faceJ!=facesJEnd;faceJ++) { + if ((*faceJ)->getTAG() == BROKEN || + (*faceJ)->getOriginalFace() != (*faceI)->getOriginalFace()) continue; + + BOP_Face *faceK = NULL; + if((*faceI)->size() == 3) { + if((*faceJ)->size() == 3) + faceK = createQuad((BOP_Face3*)*faceI,(BOP_Face3*)*faceJ); + else + faceK = createQuad((BOP_Face3*)*faceI,(BOP_Face4*)*faceJ); + } else { + if((*faceJ)->size() == 3) + faceK = createQuad((BOP_Face3*)*faceJ,(BOP_Face4*)*faceI); + else + faceK = createQuad((BOP_Face4*)*faceI,(BOP_Face4*)*faceJ); + } + + if (faceK != NULL) { + // Set triangles to BROKEN + deleteFace(m_mesh, *faceI); + deleteFace(m_mesh, *faceJ); +#ifdef DEBUG + cout << "createQuad: del " << *faceI << endl; + cout << "createQuad: del " << *faceJ << endl; + cout << "createQuad: add " << faceK << endl; +#endif + quads.push_back(faceK); + break; + } + } +#endif + } + + // Add quads to mesh + const BOP_IT_Faces quadsEnd = quads.end(); + for(BOP_IT_Faces quad=quads.begin();quad!=quadsEnd;quad++) m_mesh->addFace(*quad); + return (quads.size() > 0); +} + +/** + * Returns a new quad (convex) from the merge of two triangles that share the + * vertex index v. + * @param faceI mesh triangle + * @param faceJ mesh triangle + * @param v vertex index shared by both triangles + * @return a new convex quad if the merge is possible + */ +BOP_Face* BOP_Merge2::createQuad(BOP_Face3 *faceI, BOP_Face3 *faceJ) +{ + // Test if both triangles share a vertex index + BOP_Index v; + unsigned int i; + for(i=0;i<3 ;i++) { + v = faceI->getVertex(i); + if( faceJ->containsVertex(v) ) break; + } + if (i == 3) return NULL; + + BOP_Face *faceK = NULL; + + // Get faces data + BOP_Index prevI, nextI, prevJ, nextJ; + faceI->getNeighbours(v,prevI,nextI); + faceJ->getNeighbours(v,prevJ,nextJ); + MT_Point3 vertex = m_mesh->getVertex(v)->getPoint(); + MT_Point3 vPrevI = m_mesh->getVertex(prevI)->getPoint(); + MT_Point3 vNextI = m_mesh->getVertex(nextI)->getPoint(); + MT_Point3 vPrevJ = m_mesh->getVertex(prevJ)->getPoint(); + MT_Point3 vNextJ = m_mesh->getVertex(nextJ)->getPoint(); + + // Quad test + if (prevI == nextJ) { + if (!BOP_collinear(vNextI,vertex,vPrevJ) && !BOP_collinear(vNextI,vPrevI,vPrevJ) && + BOP_convex(vertex,vNextI,vPrevI,vPrevJ)) { + faceK = new BOP_Face4(v,nextI,prevI,prevJ,faceI->getPlane(),faceI->getOriginalFace()); + faceK->setTAG(faceI->getTAG()); + BOP_Index edge; + m_mesh->getIndexEdge(v,prevI,edge); + m_mesh->getVertex(v)->removeEdge(edge); + m_mesh->getVertex(prevI)->removeEdge(edge); + } + } + else if (nextI == prevJ) { + if (!BOP_collinear(vPrevI,vertex,vNextJ) && !BOP_collinear(vPrevI,vNextI,vNextJ) && + BOP_convex(vertex,vNextJ,vNextI,vPrevI)) { + faceK = new BOP_Face4(v,nextJ,nextI,prevI,faceI->getPlane(),faceI->getOriginalFace()); + faceK->setTAG(faceI->getTAG()); + BOP_Index edge; + m_mesh->getIndexEdge(v,nextI,edge); + m_mesh->getVertex(v)->removeEdge(edge); + m_mesh->getVertex(nextI)->removeEdge(edge); + } + } + return faceK; +} + +/** + * Returns a new quad (convex) from the merge of two triangles that share the + * vertex index v. + * @param faceI mesh triangle + * @param faceJ mesh triangle + * @param v vertex index shared by both triangles + * @return a new convex quad if the merge is possible + */ +BOP_Face* BOP_Merge2::createQuad(BOP_Face3 *faceI, BOP_Face4 *faceJ) +{ + // Test if triangle and quad share a vertex index + BOP_Index v; + unsigned int i; + for(i=0;i<3 ;i++) { + v = faceI->getVertex(i); + if( faceJ->containsVertex(v) ) break; + } + if (i == 3) return NULL; + + BOP_Face *faceK = NULL; + + // Get faces data + BOP_Index prevI, nextI, prevJ, nextJ, oppJ; + faceI->getNeighbours(v,prevI,nextI); + faceJ->getNeighbours(v,prevJ,nextJ,oppJ); + + // Quad test + BOP_Index edge; + if (nextI == prevJ) { + if (prevI == nextJ) { // v is in center + faceK = new BOP_Face3(nextJ,oppJ,prevJ,faceI->getPlane(),faceI->getOriginalFace()); + faceK->setTAG(faceI->getTAG()); + m_mesh->getIndexEdge(v,prevI,edge); + m_mesh->getVertex(v)->removeEdge(edge); + m_mesh->getVertex(prevI)->removeEdge(edge); + m_mesh->getIndexEdge(v,nextI,edge); + m_mesh->getVertex(v)->removeEdge(edge); + m_mesh->getVertex(nextI)->removeEdge(edge); + freeVerts(v, m_mesh->getVertex(v)); + } else if (prevI == oppJ) { // nextI is in center + faceK = new BOP_Face3(v,nextJ,oppJ,faceI->getPlane(),faceI->getOriginalFace()); + faceK->setTAG(faceI->getTAG()); + m_mesh->getIndexEdge(v,nextI,edge); + m_mesh->getVertex(v)->removeEdge(edge); + m_mesh->getVertex(nextI)->removeEdge(edge); + m_mesh->getIndexEdge(prevI,nextI,edge); + m_mesh->getVertex(prevI)->removeEdge(edge); + m_mesh->getVertex(nextI)->removeEdge(edge); + freeVerts(nextI, m_mesh->getVertex(nextI)); + } + } else if (nextI == oppJ && prevI == nextJ ) { // prevI is in center + faceK = new BOP_Face3(prevJ,v,oppJ,faceI->getPlane(),faceI->getOriginalFace()); + faceK->setTAG(faceI->getTAG()); + m_mesh->getIndexEdge(v,prevI,edge); + m_mesh->getVertex(v)->removeEdge(edge); + m_mesh->getVertex(prevI)->removeEdge(edge); + m_mesh->getIndexEdge(nextI,prevI,edge); + m_mesh->getVertex(nextI)->removeEdge(edge); + m_mesh->getVertex(prevI)->removeEdge(edge); + freeVerts(prevI, m_mesh->getVertex(prevI)); + } + return faceK; +} + +/** + * Returns a new quad (convex) from the merge of two triangles that share the + * vertex index v. + * @param faceI mesh triangle + * @param faceJ mesh triangle + * @param v vertex index shared by both triangles + * @return a new convex quad if the merge is possible + */ +BOP_Face* BOP_Merge2::createQuad(BOP_Face4 *faceI, BOP_Face4 *faceJ) +{ + BOP_Face *faceK = NULL; + // + // Test if both quads share a vertex index + // + BOP_Index v; + unsigned int i; + for(i=0;i<4 ;i++) { + v = faceI->getVertex(i); + if( faceJ->containsVertex(v) ) break; + } + if (i == 3) return NULL; + + + // Get faces data + BOP_Index prevI, nextI, oppI, prevJ, nextJ, oppJ; + faceI->getNeighbours(v,prevI,nextI,oppI); + faceJ->getNeighbours(v,prevJ,nextJ,oppJ); + + // Quad test + BOP_Index edge; + if (nextI == prevJ) { + if (prevI == nextJ) { // v is in center + faceK = new BOP_Face4(nextI,oppI,nextJ,oppJ,faceI->getPlane(),faceI->getOriginalFace()); + faceK->setTAG(faceI->getTAG()); + m_mesh->getIndexEdge(v,prevI,edge); + m_mesh->getVertex(v)->removeEdge(edge); + m_mesh->getVertex(prevI)->removeEdge(edge); + m_mesh->getIndexEdge(v,nextI,edge); + m_mesh->getVertex(v)->removeEdge(edge); + m_mesh->getVertex(nextI)->removeEdge(edge); + freeVerts(v, m_mesh->getVertex(v)); + } else if (oppI == oppJ) { // nextI is in center + faceK = new BOP_Face4(v,nextJ,oppJ,prevI,faceI->getPlane(),faceI->getOriginalFace()); + faceK->setTAG(faceI->getTAG()); + m_mesh->getIndexEdge(v,nextI,edge); + m_mesh->getVertex(v)->removeEdge(edge); + m_mesh->getVertex(nextI)->removeEdge(edge); + m_mesh->getIndexEdge(prevI,nextI,edge); + m_mesh->getVertex(prevI)->removeEdge(edge); + m_mesh->getVertex(nextI)->removeEdge(edge); + freeVerts(nextI, m_mesh->getVertex(nextI)); + } + } else if (prevI == nextJ && oppI == oppJ) { // prevI is in center + faceK = new BOP_Face4(v,nextI,oppJ,prevJ,faceI->getPlane(),faceI->getOriginalFace()); + faceK->setTAG(faceI->getTAG()); + m_mesh->getIndexEdge(v,prevI,edge); + m_mesh->getVertex(v)->removeEdge(edge); + m_mesh->getVertex(prevI)->removeEdge(edge); + m_mesh->getIndexEdge(nextI,prevI,edge); + m_mesh->getVertex(nextI)->removeEdge(edge); + m_mesh->getVertex(prevI)->removeEdge(edge); + freeVerts(prevI, m_mesh->getVertex(prevI)); + } + return faceK; +} + +/** + * Returns if a index is inside a set of indexs. + * @param indexs set of indexs + * @param i index + * @return true if the index is inside the set, false otherwise + */ +bool BOP_Merge2::containsIndex(BOP_Indexs indexs, BOP_Index i) +{ + const BOP_IT_Indexs indexsEnd = indexs.end(); + for(BOP_IT_Indexs it=indexs.begin();it!=indexsEnd;it++) { + if (*it == i) return true; + } + return false; +} + +/** + * Creates a list of lists L1, L2, ... LN where + * LX = mesh faces with vertex v that come from the same original face + * @param facesByOriginalFace list of faces lists + * @param v vertex index + */ +void BOP_Merge2::getFaces(BOP_LFaces &facesByOriginalFace, BOP_Index v) +{ + // Get edges with vertex v + + BOP_Indexs edgeIndexs = m_mesh->getVertex(v)->getEdges(); + const BOP_IT_Indexs edgeEnd = edgeIndexs.end(); + for(BOP_IT_Indexs edgeIndex = edgeIndexs.begin();edgeIndex != edgeEnd;edgeIndex++) { + // For each edge, add its no broken faces to the output list + BOP_Edge* edge = m_mesh->getEdge(*edgeIndex); + BOP_Indexs faceIndexs = edge->getFaces(); + const BOP_IT_Indexs faceEnd = faceIndexs.end(); + for(BOP_IT_Indexs faceIndex=faceIndexs.begin();faceIndex!=faceEnd;faceIndex++) { + BOP_Face* face = m_mesh->getFace(*faceIndex); + if (face->getTAG() != BROKEN) { + bool found = false; + // Search if we already have created a list for the + // faces that come from the same original face + const BOP_IT_LFaces lfEnd = facesByOriginalFace.end(); + for(BOP_IT_LFaces facesByOriginalFaceX=facesByOriginalFace.begin(); + facesByOriginalFaceX!=lfEnd; facesByOriginalFaceX++) { + if (((*facesByOriginalFaceX)[0])->getOriginalFace() == face->getOriginalFace()) { + // Search that the face has not been added to the list before + for(unsigned int i = 0;i<(*facesByOriginalFaceX).size();i++) { + if ((*facesByOriginalFaceX)[i] == face) { + found = true; + break; + } + } + if (!found) { + // Add the face to the list + if (face->getTAG()==OVERLAPPED) facesByOriginalFaceX->insert(facesByOriginalFaceX->begin(),face); + else facesByOriginalFaceX->push_back(face); + found = true; + } + break; + } + } + if (!found) { + // Create a new list and add the current face + BOP_Faces facesByOriginalFaceX; + facesByOriginalFaceX.push_back(face); + facesByOriginalFace.push_back(facesByOriginalFaceX); + } + } + } + } +} + +/** + * Creates a list of lists L1, L2, ... LN where + * LX = mesh faces with vertex v that come from the same original face + * and without any of the vertices that appear before v in vertices + * @param facesByOriginalFace list of faces lists + * @param vertices vector with vertices indexs that contains v + * @param v vertex index + */ +void BOP_Merge2::getFaces(BOP_LFaces &facesByOriginalFace, BOP_Indexs vertices, BOP_Index v) +{ + // Get edges with vertex v + BOP_Indexs edgeIndexs = m_mesh->getVertex(v)->getEdges(); + const BOP_IT_Indexs edgeEnd = edgeIndexs.end(); + for(BOP_IT_Indexs edgeIndex = edgeIndexs.begin();edgeIndex != edgeEnd;edgeIndex++) { + // Foreach edge, add its no broken faces to the output list + BOP_Edge* edge = m_mesh->getEdge(*edgeIndex); + BOP_Indexs faceIndexs = edge->getFaces(); + const BOP_IT_Indexs faceEnd = faceIndexs.end(); + for(BOP_IT_Indexs faceIndex=faceIndexs.begin();faceIndex!=faceEnd;faceIndex++) { + BOP_Face* face = m_mesh->getFace(*faceIndex); + if (face->getTAG() != BROKEN) { + // Search if the face contains any of the forbidden vertices + bool found = false; + for(BOP_IT_Indexs vertex = vertices.begin();*vertex!= v;vertex++) { + if (face->containsVertex(*vertex)) { + // face contains a forbidden vertex! + found = true; + break; + } + } + if (!found) { + // Search if we already have created a list with the + // faces that come from the same original face + const BOP_IT_LFaces lfEnd = facesByOriginalFace.end(); + for(BOP_IT_LFaces facesByOriginalFaceX=facesByOriginalFace.begin(); + facesByOriginalFaceX!=lfEnd; facesByOriginalFaceX++) { + if (((*facesByOriginalFaceX)[0])->getOriginalFace() == face->getOriginalFace()) { + // Search that the face has not been added to the list before + for(unsigned int i = 0;i<(*facesByOriginalFaceX).size();i++) { + if ((*facesByOriginalFaceX)[i] == face) { + found = true; + break; + } + } + if (!found) { + // Add face to the list + if (face->getTAG()==OVERLAPPED) facesByOriginalFaceX->insert(facesByOriginalFaceX->begin(),face); + else facesByOriginalFaceX->push_back(face); + found = true; + } + break; + } + } + if (!found) { + // Create a new list and add the current face + BOP_Faces facesByOriginalFaceX; + facesByOriginalFaceX.push_back(face); + facesByOriginalFace.push_back(facesByOriginalFaceX); + } + } + } + } + } +} + +#endif /* BOP_NEW_MERGE */ diff --git a/intern/boolop/intern/BOP_Merge2.h b/intern/boolop/intern/BOP_Merge2.h new file mode 100644 index 00000000000..1e5945a889f --- /dev/null +++ b/intern/boolop/intern/BOP_Merge2.h @@ -0,0 +1,99 @@ +/** + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 ***** + */ + +#ifndef BOP_MERGE2_H +#define BOP_MERGE2_H + +#include "BOP_Misc.h" + +#ifdef BOP_NEW_MERGE + +#include "BOP_Mesh.h" +#include "BOP_Tag.h" +#include "BOP_MathUtils.h" +#include "MEM_SmartPtr.h" + +typedef vector< BOP_Faces > BOP_LFaces; +typedef vector< BOP_Faces >::iterator BOP_IT_LFaces; + +class BOP_Merge2 { + private: + BOP_Mesh* m_mesh; + BOP_Index m_firstVertex; + static BOP_Merge2 SINGLETON; + + BOP_Merge2() {}; + bool mergeFaces(); + bool mergeFaces(BOP_Indexs &mergeVertices); + bool mergeFaces(BOP_Faces &oldFaces, BOP_Faces &newFaces, BOP_Indexs &vertices, BOP_Index v); + bool mergeFaces(BOP_Faces &faces, BOP_Faces &oldFaces, BOP_Faces &newFaces, BOP_Indexs &vertices, BOP_Index v); + BOP_Face *mergeFaces(BOP_Face *faceI, BOP_Face *faceJ, BOP_Index v); + BOP_Face *mergeFaces(BOP_Face *faceI, BOP_Face *faceJ, BOP_Indexs &pending, BOP_Index v); + BOP_Face *mergeFaces(BOP_Face3 *faceI, BOP_Face3 *faceJ, BOP_Index v); + BOP_Face *mergeFaces(BOP_Face4 *faceI, BOP_Face3 *faceJ, BOP_Index v); + BOP_Face *mergeFaces(BOP_Face4 *faceI, BOP_Face3 *faceJ, BOP_Indexs &pending, BOP_Index v); + BOP_Face *mergeFaces(BOP_Face4 *faceI, BOP_Face4 *faceJ, BOP_Indexs &pending, BOP_Index v); + bool createQuads(); + bool containsIndex(BOP_Indexs indexs, BOP_Index index); + void getFaces(BOP_LFaces &facesByOriginalFace, BOP_Index v); + void getFaces(BOP_LFaces &facesByOriginalFace, BOP_Indexs vertices, BOP_Index v); + BOP_Face *createQuad(BOP_Face3 *faceI, BOP_Face3 *faceJ); + BOP_Face *createQuad(BOP_Face3 *faceI, BOP_Face4 *faceJ); + BOP_Face *createQuad(BOP_Face4 *faceI, BOP_Face4 *faceJ); + + bool mergeVertex(BOP_Face *faceI, BOP_Face *faceJ, BOP_Index v, + BOP_Indexs &mergeVertices); + bool mergeVertex(BOP_Face *faceI, BOP_Face *faceJ, BOP_Index v, + BOP_Indexs &pending, BOP_Faces &oldFaces, BOP_Faces &newFaces ); + BOP_Face *find3Neighbor(BOP_Face *faceI, BOP_Face *faceJ, + BOP_Index X, BOP_Index I, BOP_Index P, BOP_Index N ); + BOP_Face *find4Neighbor(BOP_Face *faceI, BOP_Face *faceJ, + BOP_Index X, BOP_Index I, BOP_Index P, BOP_Index N, + BOP_Face **faceL, BOP_Index &O); + BOP_Face3 *collapse(BOP_Face4 *faceC, BOP_Index X); + void mergeFaces(BOP_Face *A, BOP_Face *B, BOP_Index X, + BOP_Index I, BOP_Index N, BOP_Index P, BOP_Faces &newFaces ); + void freeVerts(BOP_Index v, BOP_Vertex *vert); + + void mergeVertex(BOP_Faces&, BOP_Index, BOP_Index); + void mergeVertex(BOP_Face3 *, BOP_Index, BOP_Index); + void mergeVertex(BOP_Face4 *, BOP_Index, BOP_Index); + void cleanup( void ); + + public: + + static BOP_Merge2 &getInstance() { + return SINGLETON; + } + + void mergeFaces(BOP_Mesh *m, BOP_Index v); +}; + +void dumpmesh(BOP_Mesh *, bool); + +#endif /* BOP_NEW_MERGE2 */ +#endif diff --git a/intern/boolop/intern/BOP_Mesh.cpp b/intern/boolop/intern/BOP_Mesh.cpp index 685478fae39..075884a1920 100644 --- a/intern/boolop/intern/BOP_Mesh.cpp +++ b/intern/boolop/intern/BOP_Mesh.cpp @@ -449,6 +449,13 @@ bool BOP_Mesh::getIndexEdge(BOP_Index v1, BOP_Index v2, BOP_Index &e) printf ("found edge (%d %d)\n",v1,v2); #endif e = edge->index; +#ifdef BOP_NEW_MERGE + if( m_edges[e]->getUsed() == false ) { + m_edges[e]->setUsed(true); + m_vertexs[v1]->addEdge(e); + m_vertexs[v2]->addEdge(e); + } +#endif return true; } #ifdef HASH_PRINTF_DEBUG diff --git a/intern/boolop/intern/BOP_Misc.h b/intern/boolop/intern/BOP_Misc.h index 0e009d8ee8d..d021579d161 100644 --- a/intern/boolop/intern/BOP_Misc.h +++ b/intern/boolop/intern/BOP_Misc.h @@ -41,3 +41,14 @@ #define HASH(x) ((x) >> 5) /* each "hash" covers 32 indices */ // #define HASH_PRINTF_DEBUG /* uncomment to enable debug output */ + +/* + * temporary: control which method is used to merge final triangles and + * quads back together after an operation. If both methods are included, + * the "rt" debugging button on the Scene panel (F10) is used to control + * which is active. Setting it to 100 enables the original method, any + * other value enables the new method. + */ + +#define BOP_ORIG_MERGE /* include original merge code */ +#define BOP_NEW_MERGE /* include new merge code */ diff --git a/intern/boolop/intern/BOP_Tag.h b/intern/boolop/intern/BOP_Tag.h index 705f4885866..ead10fa6040 100644 --- a/intern/boolop/intern/BOP_Tag.h +++ b/intern/boolop/intern/BOP_Tag.h @@ -39,7 +39,7 @@ #define OUTON_TAG 0x11 // Above and on the plane #define UNCLASSIFIED_TAG 0x0F // Expecting to be classified -#define PHANTOM_TAG 0x0C // Phantom face +#define PHANTOM_TAG 0x0C // Phantom face: verts form collinear triangle #define OVERLAPPED_TAG 0x0D // Overlapped face #define BROKEN_TAG 0x0B // Splitted and unused ... -- cgit v1.2.3 From 451c00697f774cfcc8feb6881de8c3be229373f0 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sat, 2 Aug 2008 00:25:50 +0000 Subject: Scons - Mingw Compiling Fix: When using BF_SPLIT_SRCS as a hack to get some of the larger libs compiled, there were some problems linking Blender related to some boolean calls. This commit tweaks the priorities for the boolean libs for the 'intern' group so that they get linked before the src libs are. --- intern/boolop/SConscript | 2 +- intern/bsp/SConscript | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/boolop/SConscript b/intern/boolop/SConscript index a3f3c0b6433..bec263f251f 100644 --- a/intern/boolop/SConscript +++ b/intern/boolop/SConscript @@ -8,7 +8,7 @@ incs += ' ../../source/blender/makesdna ../../intern/guardedalloc' incs += ' ../../source/blender/blenlib' if (env['OURPLATFORM'] == 'win32-mingw'): - env.BlenderLib ('blender_bop', sources, Split(incs) , [], libtype=['common','intern'], priority = [5,50] ) + env.BlenderLib ('blender_bop', sources, Split(incs) , [], libtype=['common','intern'], priority = [30,85] ) else: env.BlenderLib ('blender_bop', sources, Split(incs) , [], libtype='common', priority = 5 ) diff --git a/intern/bsp/SConscript b/intern/bsp/SConscript index 88d2529ae59..39f278625a9 100644 --- a/intern/bsp/SConscript +++ b/intern/bsp/SConscript @@ -6,7 +6,7 @@ sources = env.Glob('intern/*.cpp') incs = 'intern ../container ../moto/include ../memutil' if (env['OURPLATFORM'] == 'win32-mingw'): - env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype=['common','intern'], priority=[26,26] ) + env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype=['common','intern'], priority=[26,69] ) else: env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype='core', priority=26 ) -- cgit v1.2.3 From e632b966ecf28e9db0be882f048fa6e903e63df8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 2 Aug 2008 21:39:01 +0000 Subject: BKE_global.h include path wasnt correct. made boxpack2d.c a bit more readable. no functionality changes. --- intern/boolop/intern/BOP_Interface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/boolop/intern/BOP_Interface.cpp b/intern/boolop/intern/BOP_Interface.cpp index 898ca708204..c6bcb4a74ce 100644 --- a/intern/boolop/intern/BOP_Interface.cpp +++ b/intern/boolop/intern/BOP_Interface.cpp @@ -37,7 +37,7 @@ #include "BOP_Chrono.h" #if defined(BOP_ORIG_MERGE) && defined(BOP_NEW_MERGE) -#include "../../source/blender/blenkernel/BKE_global.h" +#include "../../../source/blender/blenkernel/BKE_global.h" #endif BoolOpState BOP_intersectionBoolOp(BOP_Mesh* meshC, -- cgit v1.2.3 From df2364ab1a4ad4e09a3870c622d4e41099870e34 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 3 Aug 2008 21:57:52 +0000 Subject: Update MSVC project files for new Boolean Operation file (BOP_Merge2.cpp) --- intern/boolop/make/msvc_7_0/boolop.vcproj | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'intern') diff --git a/intern/boolop/make/msvc_7_0/boolop.vcproj b/intern/boolop/make/msvc_7_0/boolop.vcproj index 7ae417e42d5..6e6d6abeb43 100644 --- a/intern/boolop/make/msvc_7_0/boolop.vcproj +++ b/intern/boolop/make/msvc_7_0/boolop.vcproj @@ -278,6 +278,9 @@ ECHO Done + + @@ -330,9 +333,15 @@ ECHO Done + + + + -- cgit v1.2.3 From ed972db1a3a2aa7f340e4382b4f0094681b34ed3 Mon Sep 17 00:00:00 2001 From: Ian Thompson Date: Sat, 9 Aug 2008 10:12:59 +0000 Subject: Merge from trunk: 15912:16031 --- intern/boolop/SConscript | 2 +- intern/boolop/intern/BOP_Interface.cpp | 2 +- intern/boolop/make/msvc_7_0/boolop.vcproj | 9 +++++++++ intern/bsp/SConscript | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) (limited to 'intern') diff --git a/intern/boolop/SConscript b/intern/boolop/SConscript index a3f3c0b6433..bec263f251f 100644 --- a/intern/boolop/SConscript +++ b/intern/boolop/SConscript @@ -8,7 +8,7 @@ incs += ' ../../source/blender/makesdna ../../intern/guardedalloc' incs += ' ../../source/blender/blenlib' if (env['OURPLATFORM'] == 'win32-mingw'): - env.BlenderLib ('blender_bop', sources, Split(incs) , [], libtype=['common','intern'], priority = [5,50] ) + env.BlenderLib ('blender_bop', sources, Split(incs) , [], libtype=['common','intern'], priority = [30,85] ) else: env.BlenderLib ('blender_bop', sources, Split(incs) , [], libtype='common', priority = 5 ) diff --git a/intern/boolop/intern/BOP_Interface.cpp b/intern/boolop/intern/BOP_Interface.cpp index 898ca708204..c6bcb4a74ce 100644 --- a/intern/boolop/intern/BOP_Interface.cpp +++ b/intern/boolop/intern/BOP_Interface.cpp @@ -37,7 +37,7 @@ #include "BOP_Chrono.h" #if defined(BOP_ORIG_MERGE) && defined(BOP_NEW_MERGE) -#include "../../source/blender/blenkernel/BKE_global.h" +#include "../../../source/blender/blenkernel/BKE_global.h" #endif BoolOpState BOP_intersectionBoolOp(BOP_Mesh* meshC, diff --git a/intern/boolop/make/msvc_7_0/boolop.vcproj b/intern/boolop/make/msvc_7_0/boolop.vcproj index 7ae417e42d5..6e6d6abeb43 100644 --- a/intern/boolop/make/msvc_7_0/boolop.vcproj +++ b/intern/boolop/make/msvc_7_0/boolop.vcproj @@ -278,6 +278,9 @@ ECHO Done + + @@ -330,9 +333,15 @@ ECHO Done + + + + diff --git a/intern/bsp/SConscript b/intern/bsp/SConscript index 88d2529ae59..39f278625a9 100644 --- a/intern/bsp/SConscript +++ b/intern/bsp/SConscript @@ -6,7 +6,7 @@ sources = env.Glob('intern/*.cpp') incs = 'intern ../container ../moto/include ../memutil' if (env['OURPLATFORM'] == 'win32-mingw'): - env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype=['common','intern'], priority=[26,26] ) + env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype=['common','intern'], priority=[26,69] ) else: env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype='core', priority=26 ) -- cgit v1.2.3 From 00c308391a30793045a24d1f834a71834d82c6bd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 10 Aug 2008 01:38:02 +0000 Subject: * Script to convert BDF pixel fonts into C++ files blender can read. - Amiga bitmap font example http://download.blender.org/ftp/incoming/bitmap.png * BF_CONFIG was missing from SCons help menu. --- intern/bmfont/intern/BDF2BMF.py | 177 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 intern/bmfont/intern/BDF2BMF.py (limited to 'intern') diff --git a/intern/bmfont/intern/BDF2BMF.py b/intern/bmfont/intern/BDF2BMF.py new file mode 100644 index 00000000000..15b9e5b8eb4 --- /dev/null +++ b/intern/bmfont/intern/BDF2BMF.py @@ -0,0 +1,177 @@ +#!/usr/bin/python + +# ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# ***** END GPL LICENCE BLOCK ***** +# -------------------------------------------------------------------------- + +HELP_TXT = \ +''' +Convert BDF pixmap fonts into C++ files Blender can read. +Use to replace bitmap fonts or add new ones. + +Usage + python bdf2bmf.py -name=SomeName myfile.bdf + +Blender currently supports fonts with a maximum width of 8 pixels. +''' + +# -------- Simple BDF parser +import sys +def parse_bdf(f, MAX_CHARS=256): + lines = [l.strip().upper().split() for l in f.readlines()] + + is_bitmap = False + dummy = {'BITMAP':[]} + char_data = [dummy.copy() for i in xrange(MAX_CHARS)] + context_bitmap = [] + + for l in lines: + if l[0]=='ENCODING': enc = int(l[1]) + elif l[0]=='BBX': bbx = [int(c) for c in l[1:]] + elif l[0]=='DWIDTH': dwidth = int(l[1]) + elif l[0]=='BITMAP': is_bitmap = True + elif l[0]=='ENDCHAR': + if enc < MAX_CHARS: + char_data[enc]['BBX'] = bbx + char_data[enc]['DWIDTH'] = dwidth + char_data[enc]['BITMAP'] = context_bitmap + + context_bitmap = [] + enc = bbx = None + is_bitmap = False + else: + # None of the above, Ok, were reading a bitmap + if is_bitmap and enc < MAX_CHARS: + context_bitmap.append( int(l[0], 16) ) + + return char_data +# -------- end simple BDF parser + +def bdf2cpp_name(path): + return path.split('.')[0] + '.cpp' + +def convert_to_blender(bdf_dict, font_name, origfilename, MAX_CHARS=256): + + # first get a global width/height, also set the offsets + xmin = ymin = 10000000 + xmax = ymax = -10000000 + + bitmap_offsets = [-1] * MAX_CHARS + bitmap_tot = 0 + for i, c in enumerate(bdf_dict): + if c.has_key('BBX'): + bbx = c['BBX'] + xmax = max(bbx[0], xmax) + ymax = max(bbx[1], ymax) + xmin = min(bbx[2], xmin) + ymin = min(bbx[3], ymin) + + bitmap_offsets[i] = bitmap_tot + bitmap_tot += len(c['BITMAP']) + + c['BITMAP'].reverse() + + # Now we can write. Ok if we have no .'s in the path. + f = open(bdf2cpp_name(origfilename), 'w') + + f.write(''' +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "BMF_FontData.h" + +#include "BMF_Settings.h" +''') + + f.write('#if BMF_INCLUDE_%s\n\n' % font_name.upper()) + f.write('static unsigned char bitmap_data[]= {') + newline = 8 + + for i, c in enumerate(bdf_dict): + + for cdata in c['BITMAP']: + # Just formatting + newline+=1 + if newline >= 8: + newline = 0 + f.write('\n\t') + # End formatting + + f.write('0x%.2hx,' % cdata) # 0x80 <- format + + f.write("\n};\n") + + f.write("BMF_FontData BMF_font_%s = {\n" % font_name) + f.write('\t%d, %d,\n' % (xmin, ymin)) + f.write('\t%d, %d,\n' % (xmax, ymax)) + + f.write('\t{\n') + + + for i, c in enumerate(bdf_dict): + if bitmap_offsets[i] == -1 or c.has_key('BBX') == False: + f.write('\t\t{0,0,0,0,0, -1},\n') + else: + bbx = c['BBX'] + f.write('\t\t{%d,%d,%d,%d,%d, %d},\n' % (bbx[0], bbx[1], -bbx[2], -bbx[3], c['DWIDTH'], bitmap_offsets[i])) + + f.write(''' + }, + bitmap_data +}; + +#endif +''') + +def main(): + # replace "[-name=foo]" with "[-name] [foo]" + args = [] + for arg in sys.argv: + for a in arg.replace('=', ' ').split(): + args.append(a) + + name = 'untitled' + done_anything = False + for i, arg in enumerate(args): + if arg == '-name': + if i==len(args)-1: + print 'no arg given for -name, aborting' + return + else: + name = args[i+1] + + elif arg.lower().endswith('.bdf'): + try: + f = open(arg) + print '...Writing to:', bdf2cpp_name(arg) + except: + print 'could not open "%s", aborting' % arg + + + bdf_dict = parse_bdf(f) + convert_to_blender(bdf_dict, name, arg) + done_anything = True + + if not done_anything: + print HELP_TXT + print '...nothing to do' + +if __name__ == '__main__': + main() + -- cgit v1.2.3 From 5a310fe8e15a3d61dfc86a7a7a765709a6d85478 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Tue, 12 Aug 2008 09:36:51 +0000 Subject: Bugfix for non-compiling on msvc and mingw (reported by Matt) --- intern/elbeem/intern/mvmcoords.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'intern') diff --git a/intern/elbeem/intern/mvmcoords.h b/intern/elbeem/intern/mvmcoords.h index 2b63d31da54..6c24482501f 100644 --- a/intern/elbeem/intern/mvmcoords.h +++ b/intern/elbeem/intern/mvmcoords.h @@ -19,6 +19,13 @@ #include #define mvmFloat double +#ifdef WIN32 +#ifndef FREE_WINDOWS +#define isnan(n) _isnan(n) +#define finite _finite +#endif +#endif + // weight and triangle index class mvmIndexWeight { public: -- cgit v1.2.3 From fd0072e77cd28d52e00ea77542ba6d11018889b5 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 17 Aug 2008 17:08:00 +0000 Subject: Win64: please check my changes if you ran across them ;) But should be fine since no additional crashes were reported! --- intern/guardedalloc/BLO_sys_types.h | 112 ++++++++++++++++++++++++++++++++++ intern/guardedalloc/intern/mallocn.c | 12 ++-- intern/guardedalloc/intern/mmap_win.c | 2 +- intern/guardedalloc/mmap_win.h | 4 +- intern/opennl/superlu/BLO_sys_types.h | 112 ++++++++++++++++++++++++++++++++++ intern/opennl/superlu/smemory.c | 10 +-- 6 files changed, 241 insertions(+), 11 deletions(-) create mode 100644 intern/guardedalloc/BLO_sys_types.h create mode 100644 intern/opennl/superlu/BLO_sys_types.h (limited to 'intern') diff --git a/intern/guardedalloc/BLO_sys_types.h b/intern/guardedalloc/BLO_sys_types.h new file mode 100644 index 00000000000..17fa99308e0 --- /dev/null +++ b/intern/guardedalloc/BLO_sys_types.h @@ -0,0 +1,112 @@ +/** + * $Id$ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 ***** + * A platform-independent definition of [u]intXX_t + * Plus the accompanying header include for htonl/ntohl + * + * This file includes to define [u]intXX_t types, where + * XX can be 8, 16, 32 or 64. Unfortunately, not all systems have this + * file. + * - Windows uses __intXX compiler-builtin types. These are signed, + * so we have to flip the signs. + * For these rogue platforms, we make the typedefs ourselves. + * + */ + +/* +// DG: original BLO_sys_types.h is in source/blender/blenkernel +// but is not allowed be accessed here because of bad-level-call +*/ + +#ifndef BLO_SYS_TYPES_H +#define BLO_SYS_TYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef FREE_WINDOWS +typedef unsigned char uint8_t; +typedef unsigned int uint32_t; +#endif + +#if defined(_WIN32) && !defined(FREE_WINDOWS) + +/* The __intXX are built-in types of the visual complier! So we don't + * need to include anything else here. */ + +typedef signed __int8 int8_t; +typedef signed __int16 int16_t; +typedef signed __int32 int32_t; +typedef signed __int64 int64_t; + +typedef unsigned __int8 uint8_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; +typedef unsigned __int64 uint64_t; + +#ifdef _WIN64 +typedef __int64 intptr_t; +typedef unsigned __int64 uintptr_t; +#else +typedef long intptr_t; +typedef unsigned long uintptr_t; +#endif + +#elif defined(__linux__) + + /* Linux-i386, Linux-Alpha, Linux-ppc */ +#include + +#elif defined (__APPLE__) + +#include + +#else + + /* FreeBSD, Irix, Solaris */ +#include + +#endif /* ifdef platform for types */ + +#ifdef _WIN32 +#define htonl(x) correctByteOrder(x) +#define ntohl(x) correctByteOrder(x) +#elif defined (__FreeBSD__) || defined (__OpenBSD__) +#include +#elif defined (__APPLE__) +#include +#else /* irix sun linux */ +#include +#endif /* ifdef platform for htonl/ntohl */ + +#ifdef __cplusplus +} +#endif + +#endif /* eof */ + diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index 25f2fd8d269..a36549d0cc7 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -49,6 +49,8 @@ #include "MEM_guardedalloc.h" +#include "BLO_sys_types.h" // needed for intptr_t + /* --------------------------------------------------------------------- */ /* Data definition */ /* --------------------------------------------------------------------- */ @@ -112,7 +114,7 @@ static const char *check_memlist(MemHead *memh); volatile int totblock= 0; -volatile unsigned long mem_in_use= 0, mmap_in_use= 0; +volatile uintptr_t mem_in_use= 0, mmap_in_use= 0; static volatile struct localListBase _membase; static volatile struct localListBase *membase = &_membase; @@ -335,7 +337,7 @@ void *MEM_mapallocN(unsigned int len, const char *str) /* Memory statistics print */ typedef struct MemPrintBlock { const char *name; - unsigned long len; + uintptr_t len; int items; } MemPrintBlock; @@ -485,14 +487,14 @@ short MEM_freeN(void *vmemh) /* anders compileertie niet meer */ return(-1); } - if(sizeof(long)==8) { - if (((long) memh) & 0x7) { + if(sizeof(intptr_t)==8) { + if (((intptr_t) memh) & 0x7) { MemorY_ErroR("free","attempt to free illegal pointer"); return(-1); } } else { - if (((long) memh) & 0x3) { + if (((intptr_t) memh) & 0x3) { MemorY_ErroR("free","attempt to free illegal pointer"); return(-1); } diff --git a/intern/guardedalloc/intern/mmap_win.c b/intern/guardedalloc/intern/mmap_win.c index 436c99344a7..642cc16296e 100644 --- a/intern/guardedalloc/intern/mmap_win.c +++ b/intern/guardedalloc/intern/mmap_win.c @@ -151,7 +151,7 @@ void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t offset) } /* munmap for windows */ -long munmap(void *ptr, long size) +intptr_t munmap(void *ptr, intptr_t size) { MemMap *mm = mmap_findlink(mmapbase, ptr); if (!mm) { diff --git a/intern/guardedalloc/mmap_win.h b/intern/guardedalloc/mmap_win.h index f83a2d64b18..443c3b6f4ce 100644 --- a/intern/guardedalloc/mmap_win.h +++ b/intern/guardedalloc/mmap_win.h @@ -45,8 +45,10 @@ #define MAP_FAILED ((void *)-1) +#include "BLO_sys_types.h" // needed for intptr_t + void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t offset); -long munmap(void *ptr, long size); +intptr_t munmap(void *ptr, intptr_t size); #endif diff --git a/intern/opennl/superlu/BLO_sys_types.h b/intern/opennl/superlu/BLO_sys_types.h new file mode 100644 index 00000000000..17fa99308e0 --- /dev/null +++ b/intern/opennl/superlu/BLO_sys_types.h @@ -0,0 +1,112 @@ +/** + * $Id$ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 ***** + * A platform-independent definition of [u]intXX_t + * Plus the accompanying header include for htonl/ntohl + * + * This file includes to define [u]intXX_t types, where + * XX can be 8, 16, 32 or 64. Unfortunately, not all systems have this + * file. + * - Windows uses __intXX compiler-builtin types. These are signed, + * so we have to flip the signs. + * For these rogue platforms, we make the typedefs ourselves. + * + */ + +/* +// DG: original BLO_sys_types.h is in source/blender/blenkernel +// but is not allowed be accessed here because of bad-level-call +*/ + +#ifndef BLO_SYS_TYPES_H +#define BLO_SYS_TYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef FREE_WINDOWS +typedef unsigned char uint8_t; +typedef unsigned int uint32_t; +#endif + +#if defined(_WIN32) && !defined(FREE_WINDOWS) + +/* The __intXX are built-in types of the visual complier! So we don't + * need to include anything else here. */ + +typedef signed __int8 int8_t; +typedef signed __int16 int16_t; +typedef signed __int32 int32_t; +typedef signed __int64 int64_t; + +typedef unsigned __int8 uint8_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; +typedef unsigned __int64 uint64_t; + +#ifdef _WIN64 +typedef __int64 intptr_t; +typedef unsigned __int64 uintptr_t; +#else +typedef long intptr_t; +typedef unsigned long uintptr_t; +#endif + +#elif defined(__linux__) + + /* Linux-i386, Linux-Alpha, Linux-ppc */ +#include + +#elif defined (__APPLE__) + +#include + +#else + + /* FreeBSD, Irix, Solaris */ +#include + +#endif /* ifdef platform for types */ + +#ifdef _WIN32 +#define htonl(x) correctByteOrder(x) +#define ntohl(x) correctByteOrder(x) +#elif defined (__FreeBSD__) || defined (__OpenBSD__) +#include +#elif defined (__APPLE__) +#include +#else /* irix sun linux */ +#include +#endif /* ifdef platform for htonl/ntohl */ + +#ifdef __cplusplus +} +#endif + +#endif /* eof */ + diff --git a/intern/opennl/superlu/smemory.c b/intern/opennl/superlu/smemory.c index 79da748671a..7eefb900673 100644 --- a/intern/opennl/superlu/smemory.c +++ b/intern/opennl/superlu/smemory.c @@ -8,6 +8,8 @@ */ #include "ssp_defs.h" +#include "BLO_sys_types.h" // needed for intptr_t + /* Constants */ #define NO_MEMTYPE 4 /* 0: lusup; 1: ucol; @@ -49,8 +51,8 @@ static int no_expand; /* Macros to manipulate stack */ #define StackFull(x) ( x + stack.used >= stack.size ) -#define NotDoubleAlign(addr) ( (long int)addr & 7 ) -#define DoubleAlign(addr) ( ((long int)addr + 7) & ~7L ) +#define NotDoubleAlign(addr) ( (intptr_t)addr & 7 ) +#define DoubleAlign(addr) ( ((intptr_t)addr + 7) & ~7L ) #define TempSpace(m, w) ( (2*w + 4 + NO_MARKER) * m * sizeof(int) + \ (w + 1) * m * sizeof(float) ) #define Reduce(alpha) ((alpha + 1) / 2) /* i.e. (alpha-1)/2 + 1 */ @@ -611,8 +613,8 @@ sStackCompress(GlobalLU_t *Glu) last = (char*)usub + xusub[ndim] * iword; fragment = (char*) (((char*)stack.array + stack.top1) - last); - stack.used -= (long int) fragment; - stack.top1 -= (long int) fragment; + stack.used -= (intptr_t) fragment; + stack.top1 -= (intptr_t) fragment; Glu->ucol = ucol; Glu->lsub = lsub; -- cgit v1.2.3 From 9f6109002b158e4285d7c88ffc573f2cd4ac62ce Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 17 Aug 2008 22:28:30 +0000 Subject: Fix compile problem in MSVC after Win64 patch --- intern/guardedalloc/BLO_sys_types.h | 16 +++++++++++++++- intern/opennl/superlu/BLO_sys_types.h | 16 +++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/guardedalloc/BLO_sys_types.h b/intern/guardedalloc/BLO_sys_types.h index 17fa99308e0..4d3ffbe023d 100644 --- a/intern/guardedalloc/BLO_sys_types.h +++ b/intern/guardedalloc/BLO_sys_types.h @@ -69,13 +69,23 @@ typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; typedef unsigned __int64 uint64_t; +#ifndef _INTPTR_T_DEFINED #ifdef _WIN64 typedef __int64 intptr_t; -typedef unsigned __int64 uintptr_t; #else typedef long intptr_t; +#endif +#define _INTPTR_T_DEFINED +#endif + +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else typedef unsigned long uintptr_t; #endif +#define _UINTPTR_T_DEFINED +#endif #elif defined(__linux__) @@ -94,8 +104,12 @@ typedef unsigned long uintptr_t; #endif /* ifdef platform for types */ #ifdef _WIN32 +#ifndef htonl #define htonl(x) correctByteOrder(x) +#endif +#ifndef ntohl #define ntohl(x) correctByteOrder(x) +#endif #elif defined (__FreeBSD__) || defined (__OpenBSD__) #include #elif defined (__APPLE__) diff --git a/intern/opennl/superlu/BLO_sys_types.h b/intern/opennl/superlu/BLO_sys_types.h index 17fa99308e0..4d3ffbe023d 100644 --- a/intern/opennl/superlu/BLO_sys_types.h +++ b/intern/opennl/superlu/BLO_sys_types.h @@ -69,13 +69,23 @@ typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; typedef unsigned __int64 uint64_t; +#ifndef _INTPTR_T_DEFINED #ifdef _WIN64 typedef __int64 intptr_t; -typedef unsigned __int64 uintptr_t; #else typedef long intptr_t; +#endif +#define _INTPTR_T_DEFINED +#endif + +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else typedef unsigned long uintptr_t; #endif +#define _UINTPTR_T_DEFINED +#endif #elif defined(__linux__) @@ -94,8 +104,12 @@ typedef unsigned long uintptr_t; #endif /* ifdef platform for types */ #ifdef _WIN32 +#ifndef htonl #define htonl(x) correctByteOrder(x) +#endif +#ifndef ntohl #define ntohl(x) correctByteOrder(x) +#endif #elif defined (__FreeBSD__) || defined (__OpenBSD__) #include #elif defined (__APPLE__) -- cgit v1.2.3 From ed9a0fe7e940f6eaa306e7ca9876b98a3251d4a2 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 17 Aug 2008 22:32:40 +0000 Subject: Update MSVC project files after Win64 patch --- intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj | 3 +++ intern/opennl/make/msvc_7_0/opennl.vcproj | 3 +++ 2 files changed, 6 insertions(+) (limited to 'intern') diff --git a/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj b/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj index 40e88511d5d..974acef4e70 100644 --- a/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj +++ b/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj @@ -261,6 +261,9 @@ ECHO Done + + diff --git a/intern/opennl/make/msvc_7_0/opennl.vcproj b/intern/opennl/make/msvc_7_0/opennl.vcproj index ec999b0c252..d302a2508ab 100644 --- a/intern/opennl/make/msvc_7_0/opennl.vcproj +++ b/intern/opennl/make/msvc_7_0/opennl.vcproj @@ -715,6 +715,9 @@ ECHO Done + + -- cgit v1.2.3 From f876fd66b4bced68e4771f051186023d142cfa5e Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 18 Aug 2008 10:37:15 +0000 Subject: Fixing compile errors on mingw/cygwin (reported by aligorith) --- intern/guardedalloc/BLO_sys_types.h | 4 ++++ intern/opennl/superlu/BLO_sys_types.h | 4 ++++ 2 files changed, 8 insertions(+) (limited to 'intern') diff --git a/intern/guardedalloc/BLO_sys_types.h b/intern/guardedalloc/BLO_sys_types.h index 4d3ffbe023d..953b2ebad46 100644 --- a/intern/guardedalloc/BLO_sys_types.h +++ b/intern/guardedalloc/BLO_sys_types.h @@ -96,6 +96,10 @@ typedef unsigned long uintptr_t; #include +#elif defined(FREE_WINDOWS) + +#include + #else /* FreeBSD, Irix, Solaris */ diff --git a/intern/opennl/superlu/BLO_sys_types.h b/intern/opennl/superlu/BLO_sys_types.h index 4d3ffbe023d..953b2ebad46 100644 --- a/intern/opennl/superlu/BLO_sys_types.h +++ b/intern/opennl/superlu/BLO_sys_types.h @@ -96,6 +96,10 @@ typedef unsigned long uintptr_t; #include +#elif defined(FREE_WINDOWS) + +#include + #else /* FreeBSD, Irix, Solaris */ -- cgit v1.2.3 From a84d346939d2da10abc70c9e5670828f66f26437 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 18 Aug 2008 10:48:37 +0000 Subject: #2: Fixing compile errors on mingw/cygwin (reported by aligorith) --- intern/guardedalloc/BLO_sys_types.h | 5 ----- intern/opennl/superlu/BLO_sys_types.h | 5 ----- 2 files changed, 10 deletions(-) (limited to 'intern') diff --git a/intern/guardedalloc/BLO_sys_types.h b/intern/guardedalloc/BLO_sys_types.h index 953b2ebad46..5ed3117c890 100644 --- a/intern/guardedalloc/BLO_sys_types.h +++ b/intern/guardedalloc/BLO_sys_types.h @@ -48,11 +48,6 @@ #ifdef __cplusplus extern "C" { #endif - -#ifdef FREE_WINDOWS -typedef unsigned char uint8_t; -typedef unsigned int uint32_t; -#endif #if defined(_WIN32) && !defined(FREE_WINDOWS) diff --git a/intern/opennl/superlu/BLO_sys_types.h b/intern/opennl/superlu/BLO_sys_types.h index 953b2ebad46..5ed3117c890 100644 --- a/intern/opennl/superlu/BLO_sys_types.h +++ b/intern/opennl/superlu/BLO_sys_types.h @@ -48,11 +48,6 @@ #ifdef __cplusplus extern "C" { #endif - -#ifdef FREE_WINDOWS -typedef unsigned char uint8_t; -typedef unsigned int uint32_t; -#endif #if defined(_WIN32) && !defined(FREE_WINDOWS) -- cgit v1.2.3 From 3bab89cc1c51e80e15efb4f5d751940ac06001a4 Mon Sep 17 00:00:00 2001 From: Ian Thompson Date: Sat, 30 Aug 2008 14:32:16 +0000 Subject: Merge from trunk 16122-16307 --- intern/guardedalloc/BLO_sys_types.h | 125 +++++++++++++++++++++ intern/guardedalloc/intern/mallocn.c | 12 +- intern/guardedalloc/intern/mmap_win.c | 2 +- .../guardedalloc/make/msvc_7_0/guardedalloc.vcproj | 3 + intern/guardedalloc/mmap_win.h | 4 +- intern/opennl/make/msvc_7_0/opennl.vcproj | 3 + intern/opennl/superlu/BLO_sys_types.h | 125 +++++++++++++++++++++ intern/opennl/superlu/smemory.c | 10 +- 8 files changed, 273 insertions(+), 11 deletions(-) create mode 100644 intern/guardedalloc/BLO_sys_types.h create mode 100644 intern/opennl/superlu/BLO_sys_types.h (limited to 'intern') diff --git a/intern/guardedalloc/BLO_sys_types.h b/intern/guardedalloc/BLO_sys_types.h new file mode 100644 index 00000000000..5ed3117c890 --- /dev/null +++ b/intern/guardedalloc/BLO_sys_types.h @@ -0,0 +1,125 @@ +/** + * $Id$ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 ***** + * A platform-independent definition of [u]intXX_t + * Plus the accompanying header include for htonl/ntohl + * + * This file includes to define [u]intXX_t types, where + * XX can be 8, 16, 32 or 64. Unfortunately, not all systems have this + * file. + * - Windows uses __intXX compiler-builtin types. These are signed, + * so we have to flip the signs. + * For these rogue platforms, we make the typedefs ourselves. + * + */ + +/* +// DG: original BLO_sys_types.h is in source/blender/blenkernel +// but is not allowed be accessed here because of bad-level-call +*/ + +#ifndef BLO_SYS_TYPES_H +#define BLO_SYS_TYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) && !defined(FREE_WINDOWS) + +/* The __intXX are built-in types of the visual complier! So we don't + * need to include anything else here. */ + +typedef signed __int8 int8_t; +typedef signed __int16 int16_t; +typedef signed __int32 int32_t; +typedef signed __int64 int64_t; + +typedef unsigned __int8 uint8_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; +typedef unsigned __int64 uint64_t; + +#ifndef _INTPTR_T_DEFINED +#ifdef _WIN64 +typedef __int64 intptr_t; +#else +typedef long intptr_t; +#endif +#define _INTPTR_T_DEFINED +#endif + +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned long uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif + +#elif defined(__linux__) + + /* Linux-i386, Linux-Alpha, Linux-ppc */ +#include + +#elif defined (__APPLE__) + +#include + +#elif defined(FREE_WINDOWS) + +#include + +#else + + /* FreeBSD, Irix, Solaris */ +#include + +#endif /* ifdef platform for types */ + +#ifdef _WIN32 +#ifndef htonl +#define htonl(x) correctByteOrder(x) +#endif +#ifndef ntohl +#define ntohl(x) correctByteOrder(x) +#endif +#elif defined (__FreeBSD__) || defined (__OpenBSD__) +#include +#elif defined (__APPLE__) +#include +#else /* irix sun linux */ +#include +#endif /* ifdef platform for htonl/ntohl */ + +#ifdef __cplusplus +} +#endif + +#endif /* eof */ + diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index 25f2fd8d269..a36549d0cc7 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -49,6 +49,8 @@ #include "MEM_guardedalloc.h" +#include "BLO_sys_types.h" // needed for intptr_t + /* --------------------------------------------------------------------- */ /* Data definition */ /* --------------------------------------------------------------------- */ @@ -112,7 +114,7 @@ static const char *check_memlist(MemHead *memh); volatile int totblock= 0; -volatile unsigned long mem_in_use= 0, mmap_in_use= 0; +volatile uintptr_t mem_in_use= 0, mmap_in_use= 0; static volatile struct localListBase _membase; static volatile struct localListBase *membase = &_membase; @@ -335,7 +337,7 @@ void *MEM_mapallocN(unsigned int len, const char *str) /* Memory statistics print */ typedef struct MemPrintBlock { const char *name; - unsigned long len; + uintptr_t len; int items; } MemPrintBlock; @@ -485,14 +487,14 @@ short MEM_freeN(void *vmemh) /* anders compileertie niet meer */ return(-1); } - if(sizeof(long)==8) { - if (((long) memh) & 0x7) { + if(sizeof(intptr_t)==8) { + if (((intptr_t) memh) & 0x7) { MemorY_ErroR("free","attempt to free illegal pointer"); return(-1); } } else { - if (((long) memh) & 0x3) { + if (((intptr_t) memh) & 0x3) { MemorY_ErroR("free","attempt to free illegal pointer"); return(-1); } diff --git a/intern/guardedalloc/intern/mmap_win.c b/intern/guardedalloc/intern/mmap_win.c index 436c99344a7..642cc16296e 100644 --- a/intern/guardedalloc/intern/mmap_win.c +++ b/intern/guardedalloc/intern/mmap_win.c @@ -151,7 +151,7 @@ void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t offset) } /* munmap for windows */ -long munmap(void *ptr, long size) +intptr_t munmap(void *ptr, intptr_t size) { MemMap *mm = mmap_findlink(mmapbase, ptr); if (!mm) { diff --git a/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj b/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj index 40e88511d5d..974acef4e70 100644 --- a/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj +++ b/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj @@ -261,6 +261,9 @@ ECHO Done + + diff --git a/intern/guardedalloc/mmap_win.h b/intern/guardedalloc/mmap_win.h index f83a2d64b18..443c3b6f4ce 100644 --- a/intern/guardedalloc/mmap_win.h +++ b/intern/guardedalloc/mmap_win.h @@ -45,8 +45,10 @@ #define MAP_FAILED ((void *)-1) +#include "BLO_sys_types.h" // needed for intptr_t + void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t offset); -long munmap(void *ptr, long size); +intptr_t munmap(void *ptr, intptr_t size); #endif diff --git a/intern/opennl/make/msvc_7_0/opennl.vcproj b/intern/opennl/make/msvc_7_0/opennl.vcproj index ec999b0c252..d302a2508ab 100644 --- a/intern/opennl/make/msvc_7_0/opennl.vcproj +++ b/intern/opennl/make/msvc_7_0/opennl.vcproj @@ -715,6 +715,9 @@ ECHO Done + + diff --git a/intern/opennl/superlu/BLO_sys_types.h b/intern/opennl/superlu/BLO_sys_types.h new file mode 100644 index 00000000000..5ed3117c890 --- /dev/null +++ b/intern/opennl/superlu/BLO_sys_types.h @@ -0,0 +1,125 @@ +/** + * $Id$ + * + * ***** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 ***** + * A platform-independent definition of [u]intXX_t + * Plus the accompanying header include for htonl/ntohl + * + * This file includes to define [u]intXX_t types, where + * XX can be 8, 16, 32 or 64. Unfortunately, not all systems have this + * file. + * - Windows uses __intXX compiler-builtin types. These are signed, + * so we have to flip the signs. + * For these rogue platforms, we make the typedefs ourselves. + * + */ + +/* +// DG: original BLO_sys_types.h is in source/blender/blenkernel +// but is not allowed be accessed here because of bad-level-call +*/ + +#ifndef BLO_SYS_TYPES_H +#define BLO_SYS_TYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) && !defined(FREE_WINDOWS) + +/* The __intXX are built-in types of the visual complier! So we don't + * need to include anything else here. */ + +typedef signed __int8 int8_t; +typedef signed __int16 int16_t; +typedef signed __int32 int32_t; +typedef signed __int64 int64_t; + +typedef unsigned __int8 uint8_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; +typedef unsigned __int64 uint64_t; + +#ifndef _INTPTR_T_DEFINED +#ifdef _WIN64 +typedef __int64 intptr_t; +#else +typedef long intptr_t; +#endif +#define _INTPTR_T_DEFINED +#endif + +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned long uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif + +#elif defined(__linux__) + + /* Linux-i386, Linux-Alpha, Linux-ppc */ +#include + +#elif defined (__APPLE__) + +#include + +#elif defined(FREE_WINDOWS) + +#include + +#else + + /* FreeBSD, Irix, Solaris */ +#include + +#endif /* ifdef platform for types */ + +#ifdef _WIN32 +#ifndef htonl +#define htonl(x) correctByteOrder(x) +#endif +#ifndef ntohl +#define ntohl(x) correctByteOrder(x) +#endif +#elif defined (__FreeBSD__) || defined (__OpenBSD__) +#include +#elif defined (__APPLE__) +#include +#else /* irix sun linux */ +#include +#endif /* ifdef platform for htonl/ntohl */ + +#ifdef __cplusplus +} +#endif + +#endif /* eof */ + diff --git a/intern/opennl/superlu/smemory.c b/intern/opennl/superlu/smemory.c index 79da748671a..7eefb900673 100644 --- a/intern/opennl/superlu/smemory.c +++ b/intern/opennl/superlu/smemory.c @@ -8,6 +8,8 @@ */ #include "ssp_defs.h" +#include "BLO_sys_types.h" // needed for intptr_t + /* Constants */ #define NO_MEMTYPE 4 /* 0: lusup; 1: ucol; @@ -49,8 +51,8 @@ static int no_expand; /* Macros to manipulate stack */ #define StackFull(x) ( x + stack.used >= stack.size ) -#define NotDoubleAlign(addr) ( (long int)addr & 7 ) -#define DoubleAlign(addr) ( ((long int)addr + 7) & ~7L ) +#define NotDoubleAlign(addr) ( (intptr_t)addr & 7 ) +#define DoubleAlign(addr) ( ((intptr_t)addr + 7) & ~7L ) #define TempSpace(m, w) ( (2*w + 4 + NO_MARKER) * m * sizeof(int) + \ (w + 1) * m * sizeof(float) ) #define Reduce(alpha) ((alpha + 1) / 2) /* i.e. (alpha-1)/2 + 1 */ @@ -611,8 +613,8 @@ sStackCompress(GlobalLU_t *Glu) last = (char*)usub + xusub[ndim] * iword; fragment = (char*) (((char*)stack.array + stack.top1) - last); - stack.used -= (long int) fragment; - stack.top1 -= (long int) fragment; + stack.used -= (intptr_t) fragment; + stack.top1 -= (intptr_t) fragment; Glu->ucol = ucol; Glu->lsub = lsub; -- cgit v1.2.3 From 33ac84e888ee3e3217f15f955e1b389a9c4bb230 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Wed, 3 Sep 2008 00:00:32 +0000 Subject: Compile fixes (reported by broken) --- intern/opennl/superlu/BLO_sys_types.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'intern') diff --git a/intern/opennl/superlu/BLO_sys_types.h b/intern/opennl/superlu/BLO_sys_types.h index 5ed3117c890..411a8582f96 100644 --- a/intern/opennl/superlu/BLO_sys_types.h +++ b/intern/opennl/superlu/BLO_sys_types.h @@ -54,6 +54,7 @@ extern "C" { /* The __intXX are built-in types of the visual complier! So we don't * need to include anything else here. */ + typedef signed __int8 int8_t; typedef signed __int16 int16_t; typedef signed __int32 int32_t; @@ -102,6 +103,7 @@ typedef unsigned long uintptr_t; #endif /* ifdef platform for types */ + #ifdef _WIN32 #ifndef htonl #define htonl(x) correctByteOrder(x) -- cgit v1.2.3 From c587252a781865c5111c563dc397125390569526 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Wed, 3 Sep 2008 16:01:25 +0000 Subject: Bugfix for sphere-in-control-object (reported by broken) --- intern/elbeem/intern/controlparticles.cpp | 7 +++++-- intern/elbeem/intern/solver_control.cpp | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/intern/controlparticles.cpp b/intern/elbeem/intern/controlparticles.cpp index c08501d5847..18c87011971 100644 --- a/intern/elbeem/intern/controlparticles.cpp +++ b/intern/elbeem/intern/controlparticles.cpp @@ -168,7 +168,7 @@ int ControlParticles::initFromObject(ntlGeometryObjModel *model) { mvm.transfer(vertices, ninspos); tcnt++; - for(int i=0; i<(int)ninspos.size(); i++) { + for(size_t i=0; i < ninspos.size(); i++) { if(useCP[i]) { ControlParticle p; p.reset(); @@ -178,6 +178,8 @@ int ControlParticles::initFromObject(ntlGeometryObjModel *model) { } } + printf("tcnt: %d\n", tcnt); + model->setGeoInitType(FGI_CONTROL); delete tree; @@ -238,7 +240,7 @@ ControlParticles::ControlParticles() : _fluidSpacing(1.), _kernelWeight(-1.), _charLength(1.), _charLengthInv(1.), mvCPSStart(-10000.), mvCPSEnd(10000.), - mCPSWidth(0.1), mCPSTimestep(0.05), + mCPSWidth(0.1), mCPSTimestep(0.02), // was 0.05 mCPSTimeStart(0.), mCPSTimeEnd(0.5), mCPSWeightFac(1.), mDebugInit(0) { @@ -281,6 +283,7 @@ void ControlParticles::setInfluenceVelocity(LbmFloat set, LbmFloat dt) { int ControlParticles::initExampleSet() { // unused + return 0; } int ControlParticles::getTotalSize() diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp index 6b4c31b8f3e..15b9468ed0d 100644 --- a/intern/elbeem/intern/solver_control.cpp +++ b/intern/elbeem/intern/solver_control.cpp @@ -49,7 +49,9 @@ void LbmControlSet::initCparts() { LbmControlData::LbmControlData() : mSetForceStrength(0.), - mCons(), mCpUpdateInterval(16), mCpOutfile(""), + mCons(), + mCpUpdateInterval(8), // DG: was 16 --> causes problems (big sphere after some time), unstable + mCpOutfile(""), mCpForces(), mCpKernel(), mMdKernel(), mDiffVelCon(1.), mDebugCpscale(0.), -- cgit v1.2.3 From a9ffeb8cada3f6e6a5dc4b89faaa5e477a178352 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Wed, 3 Sep 2008 16:02:40 +0000 Subject: Fixing debug output --- intern/elbeem/intern/controlparticles.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/intern/controlparticles.cpp b/intern/elbeem/intern/controlparticles.cpp index 18c87011971..41e761c0f70 100644 --- a/intern/elbeem/intern/controlparticles.cpp +++ b/intern/elbeem/intern/controlparticles.cpp @@ -178,8 +178,6 @@ int ControlParticles::initFromObject(ntlGeometryObjModel *model) { } } - printf("tcnt: %d\n", tcnt); - model->setGeoInitType(FGI_CONTROL); delete tree; -- cgit v1.2.3 From 7afc0ca6009b063e6f2fd4123d8b86da174db379 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Thu, 4 Sep 2008 10:29:41 +0000 Subject: Two compile fixes for msvc and cmake provided by broken --- intern/elbeem/CMakeLists.txt | 2 +- intern/elbeem/intern/mvmcoords.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/elbeem/CMakeLists.txt b/intern/elbeem/CMakeLists.txt index 45e9b95e5ff..d73d0c3e06d 100644 --- a/intern/elbeem/CMakeLists.txt +++ b/intern/elbeem/CMakeLists.txt @@ -24,7 +24,7 @@ # # ***** END GPL LICENSE BLOCK ***** -SET(INC ${PNG_INC} ${ZLIB_INC} ${SDL_INC}) +SET(INC ${PNG_INC} ${ZLIB_INC} ${SDL_INC} extern) FILE(GLOB SRC intern/*.cpp) diff --git a/intern/elbeem/intern/mvmcoords.h b/intern/elbeem/intern/mvmcoords.h index 6c24482501f..51b0958ed78 100644 --- a/intern/elbeem/intern/mvmcoords.h +++ b/intern/elbeem/intern/mvmcoords.h @@ -21,6 +21,7 @@ #ifdef WIN32 #ifndef FREE_WINDOWS +#include "float.h" #define isnan(n) _isnan(n) #define finite _finite #endif -- cgit v1.2.3 From cb89decfdcf5e6b2f26376d416633f4ccf0c532d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 4 Sep 2008 20:51:28 +0000 Subject: Merge of first part of changes from the apricot branch, especially the features that are needed to run the game. Compile tested with scons, make, but not cmake, that seems to have an issue not related to these changes. The changes include: * GLSL support in the viewport and game engine, enable in the game menu in textured draw mode. * Synced and merged part of the duplicated blender and gameengine/ gameplayer drawing code. * Further refactoring of game engine drawing code, especially mesh storage changed a lot. * Optimizations in game engine armatures to avoid recomputations. * A python function to get the framerate estimate in game. * An option take object color into account in materials. * An option to restrict shadow casters to a lamp's layers. * Increase from 10 to 18 texture slots for materials, lamps, word. An extra texture slot shows up once the last slot is used. * Memory limit for undo, not enabled by default yet because it needs the .B.blend to be changed. * Multiple undo for image painting. * An offset for dupligroups, so not all objects in a group have to be at the origin. --- intern/guardedalloc/MEM_guardedalloc.h | 10 ++++++++-- intern/guardedalloc/intern/mallocn.c | 21 +++++++++++++++++---- intern/memutil/MEM_Allocator.h | 1 + intern/memutil/MEM_CacheLimiter.h | 12 ++++++------ intern/memutil/intern/MEM_CacheLimiterC-Api.cpp | 8 ++++---- intern/moto/include/GEN_Map.h | 13 +++++++++++++ intern/moto/include/MT_Matrix4x4.h | 1 + intern/moto/include/MT_Matrix4x4.inl | 14 +++++++------- 8 files changed, 57 insertions(+), 23 deletions(-) (limited to 'intern') diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h index d004e7952cc..1d4c753802b 100644 --- a/intern/guardedalloc/MEM_guardedalloc.h +++ b/intern/guardedalloc/MEM_guardedalloc.h @@ -58,8 +58,8 @@ #ifndef MEM_MALLOCN_H #define MEM_MALLOCN_H -/* Needed for FILE* */ -#include "stdio.h" +#include "stdio.h" /* needed for FILE* */ +#include "BLO_sys_types.h" /* needed for uintptr_t */ #ifdef __cplusplus extern "C" { @@ -123,6 +123,12 @@ extern "C" { /** Attempt to enforce OSX (or other OS's) to have malloc and stack nonzero */ void MEM_set_memory_debug(void); + /* Memory usage stats + * - MEM_get_memory_in_use is all memory + * - MEM_get_mapped_memory_in_use is a subset of all memory */ + uintptr_t MEM_get_memory_in_use(void); + uintptr_t MEM_get_mapped_memory_in_use(void); + int MEM_get_memory_blocks_in_use(void); #ifdef __cplusplus } diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index a36549d0cc7..7bdca7339fc 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -49,8 +49,6 @@ #include "MEM_guardedalloc.h" -#include "BLO_sys_types.h" // needed for intptr_t - /* --------------------------------------------------------------------- */ /* Data definition */ /* --------------------------------------------------------------------- */ @@ -113,8 +111,8 @@ static const char *check_memlist(MemHead *memh); /* --------------------------------------------------------------------- */ -volatile int totblock= 0; -volatile uintptr_t mem_in_use= 0, mmap_in_use= 0; +static volatile int totblock= 0; +static volatile uintptr_t mem_in_use= 0, mmap_in_use= 0; static volatile struct localListBase _membase; static volatile struct localListBase *membase = &_membase; @@ -698,4 +696,19 @@ static const char *check_memlist(MemHead *memh) return(name); } +uintptr_t MEM_get_memory_in_use(void) +{ + return mem_in_use; +} + +uintptr_t MEM_get_mapped_memory_in_use(void) +{ + return mmap_in_use; +} + +int MEM_get_memory_blocks_in_use(void) +{ + return totblock; +} + /* eof */ diff --git a/intern/memutil/MEM_Allocator.h b/intern/memutil/MEM_Allocator.h index d5ae94cc6b8..b2c3c5e82e2 100644 --- a/intern/memutil/MEM_Allocator.h +++ b/intern/memutil/MEM_Allocator.h @@ -25,6 +25,7 @@ #define __MEM_Allocator_h_included__ 1 #include "guardedalloc/MEM_guardedalloc.h" +#include "guardedalloc/BLO_sys_types.h" #ifdef _MSC_VER #if _MSC_VER < 1300 // 1200 == VC++ 6.0 according to boost diff --git a/intern/memutil/MEM_CacheLimiter.h b/intern/memutil/MEM_CacheLimiter.h index cada06ae523..43149efc977 100644 --- a/intern/memutil/MEM_CacheLimiter.h +++ b/intern/memutil/MEM_CacheLimiter.h @@ -61,11 +61,8 @@ class MEM_CacheLimiter; #ifndef __MEM_cache_limiter_c_api_h_included__ extern "C" { - extern void MEM_CacheLimiter_set_maximum(int m); - extern int MEM_CacheLimiter_get_maximum(); - // this is rather _ugly_! - extern int mem_in_use; - extern int mmap_in_use; + extern void MEM_CacheLimiter_set_maximum(intptr_t m); + extern intptr_t MEM_CacheLimiter_get_maximum(); }; #endif @@ -141,7 +138,10 @@ public: delete handle; } void enforce_limits() { - int max = MEM_CacheLimiter_get_maximum(); + intptr_t max = MEM_CacheLimiter_get_maximum(); + intptr_t mem_in_use= MEM_get_memory_in_use(); + intptr_t mmap_in_use= MEM_get_mapped_memory_in_use(); + if (max == 0) { return; } diff --git a/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp b/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp index 4cf0ef305d4..d998c9a3e80 100644 --- a/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp +++ b/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp @@ -27,18 +27,18 @@ #include "MEM_CacheLimiter.h" #include "MEM_CacheLimiterC-Api.h" -static int & get_max() +static intptr_t & get_max() { - static int m = 32*1024*1024; + static intptr_t m = 32*1024*1024; return m; } -void MEM_CacheLimiter_set_maximum(int m) +void MEM_CacheLimiter_set_maximum(intptr_t m) { get_max() = m; } -int MEM_CacheLimiter_get_maximum() +intptr_t MEM_CacheLimiter_get_maximum() { return get_max(); } diff --git a/intern/moto/include/GEN_Map.h b/intern/moto/include/GEN_Map.h index 9f56924419e..d85e9af175b 100644 --- a/intern/moto/include/GEN_Map.h +++ b/intern/moto/include/GEN_Map.h @@ -50,6 +50,19 @@ public: m_buckets[i] = 0; } } + + GEN_Map(const GEN_Map& map) + { + m_num_buckets = map.m_num_buckets; + m_buckets = new Entry *[m_num_buckets]; + + for (int i = 0; i < m_num_buckets; ++i) { + m_buckets[i] = 0; + + for(Entry *entry = map.m_buckets[i]; entry; entry=entry->m_next) + insert(entry->m_key, entry->m_value); + } + } int size() { int count=0; diff --git a/intern/moto/include/MT_Matrix4x4.h b/intern/moto/include/MT_Matrix4x4.h index 823541347b7..b4ee84a718b 100644 --- a/intern/moto/include/MT_Matrix4x4.h +++ b/intern/moto/include/MT_Matrix4x4.h @@ -212,6 +212,7 @@ public: MT_Matrix4x4 transposed() const; void transpose(); + MT_Matrix4x4 inverse() const; void invert(); protected: diff --git a/intern/moto/include/MT_Matrix4x4.inl b/intern/moto/include/MT_Matrix4x4.inl index a2aa893a6b3..074bd6e4b05 100644 --- a/intern/moto/include/MT_Matrix4x4.inl +++ b/intern/moto/include/MT_Matrix4x4.inl @@ -52,14 +52,14 @@ GEN_INLINE void MT_Matrix4x4::invert() { } } -/* We do things slightly different here, because the invert() modifies - * the buffer itself. This makes it impossible to make this op right - * away. Like other, still missing facilities, I will repair this - * later. */ -/* GEN_INLINE T_Matrix4x4 MT_Matrix4x4::inverse() const */ -/* { */ -/* } */ +GEN_INLINE MT_Matrix4x4 MT_Matrix4x4::inverse() const +{ + MT_Matrix4x4 invmat = *this; + + invmat.invert(); + return invmat; +} GEN_INLINE MT_Matrix4x4& MT_Matrix4x4::operator*=(const MT_Matrix4x4& m) { -- cgit v1.2.3 From 810f79966049f126f23dc39bc7703c81bd5f8748 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 6 Sep 2008 13:24:42 +0000 Subject: Revert a commit from 5 years ago that added a glFinish call before swapping on Windows. This is really bad for performance and especially showed in the game engine. The purpose was to disable FSAA and fix some UI issue on Geforce 2 graphics cards, hopefully the drivers have been fixed by now? I have no way to test this, so we'll see if an issue pops up on those older cards, and a lot of code changed since then anyway so it might not even be needed anymore. --- intern/ghost/intern/GHOST_WindowWin32.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index fef58d071a4..c30b915c019 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -437,7 +437,13 @@ GHOST_TSuccess GHOST_WindowWin32::swapBuffers() // adding a glFinish() here is to prevent Geforce in 'full scene antialias' mode // from antialising the Blender window. Officially a swapbuffers does a glFinish // itself, so this feels really like a hack... but it won't harm. (ton) - glFinish(); + // + // disabled this because it is a performance killer for the game engine, glFinish + // forces synchronization with the graphics card and calling it is strongly + // discouraged for good performance. (brecht) + // + // glFinish(); + return ::SwapBuffers(m_hDC) == TRUE ? GHOST_kSuccess : GHOST_kFailure; } -- cgit v1.2.3 From f305bb22b7e5f809063539cdb76a24727f41a11a Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 9 Sep 2008 21:15:30 +0000 Subject: Patch 17508: Blender Web Plugin - XEmbed. Enable XEmbed integration of blenderplayer, using -i as input parameter to pass embedder window id. create a minimal web plugin to embed blenderplayer on web pages (using gecko/mozilla as browser). Only for *nix. --- intern/ghost/GHOST_ISystem.h | 4 +- intern/ghost/GHOST_Types.h | 10 +++++ intern/ghost/intern/GHOST_SystemCarbon.cpp | 3 +- intern/ghost/intern/GHOST_SystemCarbon.h | 4 +- intern/ghost/intern/GHOST_SystemWin32.cpp | 2 +- intern/ghost/intern/GHOST_SystemWin32.h | 3 +- intern/ghost/intern/GHOST_SystemX11.cpp | 13 ++++-- intern/ghost/intern/GHOST_SystemX11.h | 6 ++- intern/ghost/intern/GHOST_WindowX11.cpp | 67 +++++++++++++++++++++++------- intern/ghost/intern/GHOST_WindowX11.h | 2 + 10 files changed, 89 insertions(+), 25 deletions(-) (limited to 'intern') diff --git a/intern/ghost/GHOST_ISystem.h b/intern/ghost/GHOST_ISystem.h index 2ad2e9ddce7..baf0cb813f8 100644 --- a/intern/ghost/GHOST_ISystem.h +++ b/intern/ghost/GHOST_ISystem.h @@ -224,13 +224,15 @@ public: * @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 parentWindow Parent (embedder) window * @return The new window (or 0 if creation failed). */ virtual GHOST_IWindow* createWindow( 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) = 0; + const bool stereoVisual, + const GHOST_TEmbedderWindowID parentWindow = 0) = 0; /** * Dispose a window. diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h index f81192f1887..6b1295f649b 100644 --- a/intern/ghost/GHOST_Types.h +++ b/intern/ghost/GHOST_Types.h @@ -100,6 +100,7 @@ typedef enum { GHOST_kWindowStateMaximized, GHOST_kWindowStateMinimized, GHOST_kWindowStateFullScreen, + GHOST_kWindowStateEmbedded, GHOST_kWindowState8Normal = 8, GHOST_kWindowState8Maximized, GHOST_kWindowState8Minimized, @@ -392,6 +393,15 @@ typedef struct { } GHOST_DisplaySetting; +#ifdef _WIN32 +typedef long GHOST_TEmbedderWindowID; +#endif // _WIN32 + +#ifndef _WIN32 +// I can't use "Window" from "" because it conflits with Window defined in winlay.h +typedef int GHOST_TEmbedderWindowID; +#endif // _WIN32 + /** * A timer task callback routine. * @param task The timer task object. diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp index 78c25997806..067c8deee32 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.cpp +++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp @@ -402,7 +402,8 @@ GHOST_IWindow* GHOST_SystemCarbon::createWindow( GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - bool stereoVisual + bool stereoVisual, + const GHOST_TEmbedderWindowID parentWindow ) { GHOST_IWindow* window = 0; diff --git a/intern/ghost/intern/GHOST_SystemCarbon.h b/intern/ghost/intern/GHOST_SystemCarbon.h index 2afc8e0885a..2a1d6325784 100644 --- a/intern/ghost/intern/GHOST_SystemCarbon.h +++ b/intern/ghost/intern/GHOST_SystemCarbon.h @@ -103,6 +103,7 @@ public: * @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 parentWindow Parent (embedder) window * @return The new window (or 0 if creation failed). */ virtual GHOST_IWindow* createWindow( @@ -113,7 +114,8 @@ public: GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - const bool stereoVisual + const bool stereoVisual, + const GHOST_TEmbedderWindowID parentWindow = 0 ); /*************************************************************************************** diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 7bc20d38739..feb0fe39040 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -169,7 +169,7 @@ GHOST_IWindow* GHOST_SystemWin32::createWindow( const STR_String& title, GHOST_TInt32 left, GHOST_TInt32 top, GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - bool stereoVisual) + bool stereoVisual, const GHOST_TEmbedderWindowID parentWindow ) { GHOST_Window* window = 0; window = new GHOST_WindowWin32 (title, left, top, width, height, state, type, stereoVisual); diff --git a/intern/ghost/intern/GHOST_SystemWin32.h b/intern/ghost/intern/GHOST_SystemWin32.h index c26ef25e366..00f7af00162 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.h +++ b/intern/ghost/intern/GHOST_SystemWin32.h @@ -109,13 +109,14 @@ public: * @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 parentWindow Parent (embedder) window * @return The new window (or 0 if creation failed). */ virtual GHOST_IWindow* createWindow( 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, const GHOST_TEmbedderWindowID parentWindow = 0 ); /*************************************************************************************** ** Event management functionality diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 3003e0b8b14..1b90831986d 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -191,6 +191,7 @@ getMainDisplayDimensions( * @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 parentWindow Parent (embedder) window * @return The new window (or 0 if creation failed). */ GHOST_IWindow* @@ -203,14 +204,18 @@ createWindow( GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - bool stereoVisual + bool stereoVisual, + const GHOST_TEmbedderWindowID parentWindow ){ GHOST_WindowX11 * window = 0; if (!m_display) return 0; + + + window = new GHOST_WindowX11 ( - this,m_display,title, left, top, width, height, state, type, stereoVisual + this,m_display,title, left, top, width, height, state, parentWindow, type, stereoVisual ); if (window) { @@ -511,7 +516,9 @@ GHOST_SystemX11::processEvent(XEvent *xe) } break; } - + + case DestroyNotify: + ::exit(-1); // We're not interested in the following things.(yet...) case NoExpose : case GraphicsExpose : diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h index 726cdfb2fff..c67f7d81e60 100644 --- a/intern/ghost/intern/GHOST_SystemX11.h +++ b/intern/ghost/intern/GHOST_SystemX11.h @@ -108,6 +108,7 @@ public: * @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 parentWindow Parent (embedder) window * @return The new window (or 0 if creation failed). */ GHOST_IWindow* @@ -119,9 +120,10 @@ public: GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type, - const bool stereoVisual + const bool stereoVisual, + const GHOST_TEmbedderWindowID parentWindow = 0 ); - + /** * @section Interface Inherited from GHOST_ISystem */ diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp index a98a59377c7..7b0606c40b7 100644 --- a/intern/ghost/intern/GHOST_WindowX11.cpp +++ b/intern/ghost/intern/GHOST_WindowX11.cpp @@ -138,6 +138,7 @@ GHOST_WindowX11( GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, + const GHOST_TEmbedderWindowID parentWindow, GHOST_TDrawingContextType type, const bool stereoVisual ) : @@ -205,21 +206,57 @@ GHOST_WindowX11( // create the window! - m_window = - XCreateWindow( - m_display, - RootWindow(m_display, m_visual->screen), - left, - top, - width, - height, - 0, // no border. - m_visual->depth, - InputOutput, - m_visual->visual, - CWBorderPixel|CWColormap|CWEventMask, - &xattributes - ); + ; + if (parentWindow == 0) { + m_window = + XCreateWindow( + m_display, + RootWindow(m_display, m_visual->screen), + left, + top, + width, + height, + 0, // no border. + m_visual->depth, + InputOutput, + m_visual->visual, + CWBorderPixel|CWColormap|CWEventMask, + &xattributes + ); + } else { + + Window root_return; + int x_return,y_return; + unsigned int w_return,h_return,border_w_return,depth_return; + GHOST_TInt32 screen_x, screen_y; + + XGetGeometry(m_display, parentWindow, &root_return, &x_return, &y_return, + &w_return, &h_return, &border_w_return, &depth_return ); + + left = 0; + top = 0; + width = w_return; + height = h_return; + + + m_window = XCreateWindow( + m_display, + parentWindow, // reparent against embedder + left, + top, + width, + height, + 0, // no border. + m_visual->depth, + InputOutput, + m_visual->visual, + CWBorderPixel|CWColormap|CWEventMask, + &xattributes + ); + + XSelectInput(m_display , parentWindow, SubstructureNotifyMask); + + } // Are we in fullscreen mode - then include diff --git a/intern/ghost/intern/GHOST_WindowX11.h b/intern/ghost/intern/GHOST_WindowX11.h index 1203dbde80d..abb5c131cb7 100644 --- a/intern/ghost/intern/GHOST_WindowX11.h +++ b/intern/ghost/intern/GHOST_WindowX11.h @@ -64,6 +64,7 @@ public: * @param width The width the window. * @param height The height the window. * @param state The state the window is initially opened with. + * @param parentWindow Parent (embedder) window * @param type The type of drawing context installed in this window. * @param stereoVisual Stereo visual for quad buffered stereo. */ @@ -76,6 +77,7 @@ public: GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, + const GHOST_TEmbedderWindowID parentWindow, GHOST_TDrawingContextType type = GHOST_kDrawingContextTypeNone, const bool stereoVisual = false ); -- cgit v1.2.3 From b0d9994220a0960889e871bd7f3513f075ff2007 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 12 Sep 2008 13:24:22 +0000 Subject: made max sounds playable at once 32 rather then 16. (demo release background music would turn off otherwise) made selecting sound samples keep the relative path setting. --- intern/SoundSystem/SoundDefines.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/SoundSystem/SoundDefines.h b/intern/SoundSystem/SoundDefines.h index 5d425a8dc94..9758fdaadea 100644 --- a/intern/SoundSystem/SoundDefines.h +++ b/intern/SoundSystem/SoundDefines.h @@ -44,7 +44,7 @@ enum /* general stuff */ #define NUM_BUFFERS 128 -#define NUM_SOURCES 16 +#define NUM_SOURCES 32 /* openal related stuff */ #define AL_LOOPING 0x1007 -- cgit v1.2.3 From 206cfe7955683ac166201e417977e933fd98f7b3 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Sat, 13 Sep 2008 05:24:52 +0000 Subject: avoid crash when game engine returns to Blender, and OpenAL sources haven't been initialized properly for some reason. --- intern/SoundSystem/openal/SND_OpenALDevice.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'intern') diff --git a/intern/SoundSystem/openal/SND_OpenALDevice.cpp b/intern/SoundSystem/openal/SND_OpenALDevice.cpp index 82ed1c8a808..c660e9aecba 100644 --- a/intern/SoundSystem/openal/SND_OpenALDevice.cpp +++ b/intern/SoundSystem/openal/SND_OpenALDevice.cpp @@ -294,6 +294,10 @@ SND_OpenALDevice::SND_OpenALDevice() // let openal generate its sources if (alc_error == ALC_NO_ERROR) { + int i; + + for (i=0;i Date: Sat, 13 Sep 2008 08:22:55 +0000 Subject: 32 sounds max would crash on windows because the openal limit is 24, tested an the to-frankie demo playes ok with 24, but would be good to make use of the sound lib's 'priority' option. --- intern/SoundSystem/SoundDefines.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/SoundSystem/SoundDefines.h b/intern/SoundSystem/SoundDefines.h index 9758fdaadea..450fde187b5 100644 --- a/intern/SoundSystem/SoundDefines.h +++ b/intern/SoundSystem/SoundDefines.h @@ -44,7 +44,7 @@ enum /* general stuff */ #define NUM_BUFFERS 128 -#define NUM_SOURCES 32 +#define NUM_SOURCES 24 /* 24 is the limit for openal on windows, was 16 in 2.47 and previous */ /* openal related stuff */ #define AL_LOOPING 0x1007 -- cgit v1.2.3 From d111983064296dc9dd2c1b3f1735efd38f95c9d1 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 14 Sep 2008 03:51:51 +0000 Subject: Fix for bug #5758 and #17585: armatures with IK constraint did not work in the game player, now the IK lib is linked into the player. Makefiles/Scons/CMake buildsystems have been updated. Fix materials nodes to work in the game player. --- intern/iksolver/CMakeLists.txt | 2 +- intern/iksolver/SConscript | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/iksolver/CMakeLists.txt b/intern/iksolver/CMakeLists.txt index da69f2a3332..736a2a78bb2 100644 --- a/intern/iksolver/CMakeLists.txt +++ b/intern/iksolver/CMakeLists.txt @@ -28,5 +28,5 @@ SET(INC intern ../moto/include ../memutil) FILE(GLOB SRC intern/*.cpp) -BLENDERLIB_NOLIST(blender_IK "${SRC}" "${INC}") +BLENDERLIB(bf_IK "${SRC}" "${INC}") #, libtype=['blender'], priority = [10] ) diff --git a/intern/iksolver/SConscript b/intern/iksolver/SConscript index 81bf61dfcd8..543ee46487c 100644 --- a/intern/iksolver/SConscript +++ b/intern/iksolver/SConscript @@ -5,4 +5,5 @@ sources = env.Glob('intern/*.cpp') incs = 'intern ../moto/include ../memutil' -env.BlenderLib ('blender_IK', sources, Split(incs), [], libtype='blender', priority=10 ) +env.BlenderLib ('bf_IK', sources, Split(incs), [], libtype=['intern','player'], priority=[20,100] ) + -- cgit v1.2.3 From aae506aea70ebf537c7b6079cd13ada6742fc176 Mon Sep 17 00:00:00 2001 From: Diego Borghetti Date: Mon, 15 Sep 2008 18:23:34 +0000 Subject: Small fix in GHOST X11 system. * Fix and a little of cleanup to the full screen, minimzed and maximized code. * Fix bad argument in the ClientMessage event to support the _NET_ACTIVE_WINDOW property. * Fix focus problem in some WM (like TWM), this is because Blender don't set the WM_PROTOCOLS list, now it does, a very basic list but it's what we need now. --- intern/ghost/intern/GHOST_SystemX11.cpp | 47 +++- intern/ghost/intern/GHOST_SystemX11.h | 22 +- intern/ghost/intern/GHOST_WindowX11.cpp | 397 +++++++++++++++++++++++++++----- intern/ghost/intern/GHOST_WindowX11.h | 21 ++ 4 files changed, 418 insertions(+), 69 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 1b90831986d..047bc654559 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -96,15 +96,26 @@ GHOST_SystemX11( if (!m_display) return; #ifdef __sgi - m_delete_window_atom - = XSGIFastInternAtom(m_display, + m_delete_window_atom = XSGIFastInternAtom(m_display, "WM_DELETE_WINDOW", SGI_XA_WM_DELETE_WINDOW, False); #else - m_delete_window_atom - = XInternAtom(m_display, "WM_DELETE_WINDOW", True); + m_delete_window_atom = XInternAtom(m_display, "WM_DELETE_WINDOW", False); #endif + m_wm_protocols= XInternAtom(m_display, "WM_PROTOCOLS", False); + m_wm_take_focus= XInternAtom(m_display, "WM_TAKE_FOCUS", False); + m_wm_state= XInternAtom(m_display, "WM_STATE", False); + m_wm_change_state= XInternAtom(m_display, "WM_CHANGE_STATE", False); + m_net_state= XInternAtom(m_display, "_NET_WM_STATE", False); + m_net_max_horz= XInternAtom(m_display, + "_NET_WM_STATE_MAXIMIZED_HORZ", False); + m_net_max_vert= XInternAtom(m_display, + "_NET_WM_STATE_MAXIMIZED_VERT", False); + m_net_fullscreen= XInternAtom(m_display, + "_NET_WM_STATE_FULLSCREEN", False); + m_motif= XInternAtom(m_display, "_MOTIF_WM_HINTS", False); + // compute the initial time timeval tv; if (gettimeofday(&tv,NULL) == -1) { @@ -477,7 +488,7 @@ GHOST_SystemX11::processEvent(XEvent *xe) XClientMessageEvent & xcme = xe->xclient; #ifndef __sgi - if (xcme.data.l[0] == m_delete_window_atom) { + if (((Atom)xcme.data.l[0]) == m_delete_window_atom) { g_event = new GHOST_Event( getMilliSeconds(), @@ -511,6 +522,14 @@ GHOST_SystemX11::processEvent(XEvent *xe) GHOST_kEventNDOFButton, window, data); } + } + else if (((Atom)xcme.data.l[0]) == m_wm_take_focus) { + /* as ICCCM say, we need reply this event + * with a SetInputFocus, the data[1] have + * the valid timestamp (send by the window + * manager). + */ + XSetInputFocus(m_display, xcme.window, RevertToParent, xcme.data.l[1]); } else { /* Unknown client message, ignore */ } @@ -528,6 +547,24 @@ GHOST_SystemX11::processEvent(XEvent *xe) // XCrossingEvents pointer leave enter window. break; case MapNotify: + /* + * From ICCCM: + * [ Clients can select for StructureNotify on their + * top-level windows to track transition between + * Normal and Iconic states. Receipt of a MapNotify + * event will indicate a transition to the Normal + * state, and receipt of an UnmapNotify event will + * indicate a transition to the Iconic state. ] + */ + if (window->m_post_init == True) { + /* + * Now we are sure that the window is + * mapped, so only need change the state. + */ + window->setState(window->m_post_state); + window->m_post_init= False; + } + break; case UnmapNotify: break; case MappingNotify: diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h index c67f7d81e60..683337b47e1 100644 --- a/intern/ghost/intern/GHOST_SystemX11.h +++ b/intern/ghost/intern/GHOST_SystemX11.h @@ -215,15 +215,27 @@ public: */ virtual void putClipboard(GHOST_TInt8 *buffer, int flag) const; -private : - - Display * m_display; - /** - * Atom used to detect window close events + * Atom used for ICCCM, WM-spec and Motif. + * We only need get this atom at the start, it's relative + * to the display not the window and are public for every + * window that need it. */ + Atom m_wm_protocols; + Atom m_wm_take_focus; + Atom m_wm_state; + Atom m_wm_change_state; + Atom m_net_state; + Atom m_net_max_horz; + Atom m_net_max_vert; + Atom m_net_fullscreen; + Atom m_motif; Atom m_delete_window_atom; +private : + + Display * m_display; + /// The vector of windows that need to be updated. std::vector m_dirty_windows; diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp index 7b0606c40b7..2f7aee95b82 100644 --- a/intern/ghost/intern/GHOST_WindowX11.cpp +++ b/intern/ghost/intern/GHOST_WindowX11.cpp @@ -54,6 +54,16 @@ typedef struct { #define MWM_HINTS_DECORATIONS (1L << 1) +/* + * A client can't change the window property, that is the + * work of the window manager. We send a ClientMessage + * event to the Root window with the property + * and the Action (WM-spec define this): + */ +#define _NET_WM_STATE_REMOVE 0 +#define _NET_WM_STATE_ADD 1 +#define _NET_WM_STATE_TOGGLE 2 + /* import bpy I = bpy.data.images['blender.png'] # the 48x48 icon @@ -154,7 +164,8 @@ GHOST_WindowX11( // Set up the minimum atrributes that we require and see if // X can find us a visual matching those requirements. - + Atom atoms[2]; + int natom; int attributes[40], i = 0; @@ -228,7 +239,6 @@ GHOST_WindowX11( Window root_return; int x_return,y_return; unsigned int w_return,h_return,border_w_return,depth_return; - GHOST_TInt32 screen_x, screen_y; XGetGeometry(m_display, parentWindow, &root_return, &x_return, &y_return, &w_return, &h_return, &border_w_return, &depth_return ); @@ -262,46 +272,26 @@ GHOST_WindowX11( // Are we in fullscreen mode - then include // some obscure blut code to remove decorations. - if (state == GHOST_kWindowStateFullScreen) { + /* + * One of the problem with WM_spec is that can't set a property + * to a window that isn't mapped. That is why we can't "just + * call setState" here. + * + * To fix this, we first need know that the window is really + * mapped waiting for the MapNotify event. + * + * So, m_post_init indicate that we need wait for the MapNotify + * event and then set the window state to the m_post_state. + */ + if ((state != GHOST_kWindowStateNormal) && (state != GHOST_kWindowStateMinimized)) { + m_post_init = True; + m_post_state = state; + } + else { + m_post_init = False; + m_post_state = GHOST_kWindowStateNormal; + } - MotifWmHints hints; - Atom atom; - - atom = XInternAtom(m_display, "_MOTIF_WM_HINTS", False); - - if (atom == None) { - GHOST_PRINT("Could not intern X atom for _MOTIF_WM_HINTS.\n"); - } else { - hints.flags = MWM_HINTS_DECORATIONS; - hints.decorations = 0; /* Absolutely no decorations. */ - // other hints.decorations make no sense - // you can't select individual decorations - - XChangeProperty(m_display, m_window, - atom, atom, 32, - PropModeReplace, (unsigned char *) &hints, 4); - } - } else if (state == GHOST_kWindowStateMaximized) { - // With this, xprop should report the following just after launch - // _NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ - // After demaximization the right side is empty, though (maybe not the most correct then?) - Atom state, atomh, atomv; - - state = XInternAtom(m_display, "_NET_WM_STATE", False); - atomh = XInternAtom(m_display, "_NET_WM_STATE_MAXIMIZED_HORZ", False); - atomv = XInternAtom(m_display, "_NET_WM_STATE_MAXIMIZED_VERT", False); - if (state == None ) { - GHOST_PRINT("Atom _NET_WM_STATE requested but not avaliable nor created.\n"); - } else { - XChangeProperty(m_display, m_window, - state, XA_ATOM, 32, - PropModeAppend, (unsigned char *) &atomh, 1); - XChangeProperty(m_display, m_window, - state, XA_ATOM, 32, - PropModeAppend, (unsigned char *) &atomv, 1); - } - } - // Create some hints for the window manager on how // we want this window treated. @@ -324,6 +314,25 @@ GHOST_WindowX11( free(wmclass); XFree(xclasshint); + /* The basic for a good ICCCM "work" */ + if (m_system->m_wm_protocols) { + natom= 0; + + if (m_system->m_delete_window_atom) { + atoms[natom]= m_system->m_delete_window_atom; + natom++; + } + + if (m_system->m_wm_take_focus) { + atoms[natom]= m_system->m_wm_take_focus; + natom++; + } + + if (natom) { + /* printf("Register atoms: %d\n", natom); */ + XSetWMProtocols(m_display, m_window, atoms, natom); + } + } // Set the window icon XWMHints *xwmhints = XAllocWMHints(); @@ -645,28 +654,298 @@ clientToScreen( outY = ay; } +void GHOST_WindowX11::icccmSetState(int state) +{ + XEvent xev; - GHOST_TWindowState -GHOST_WindowX11:: -getState( -) const { - //FIXME - return GHOST_kWindowStateNormal; + if (state != IconicState) + return; + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = m_display; + xev.xclient.window = m_window; + xev.xclient.format = 32; + xev.xclient.message_type = m_system->m_wm_change_state; + xev.xclient.data.l[0] = state; + XSendEvent (m_display, RootWindow(m_display, DefaultScreen(m_display)), + False, SubstructureNotifyMask | SubstructureRedirectMask, &xev); } - GHOST_TSuccess -GHOST_WindowX11:: -setState( - GHOST_TWindowState state -){ - //TODO +int GHOST_WindowX11::icccmGetState(void) const +{ + unsigned char *prop_ret; + unsigned long bytes_after, num_ret; + Atom type_ret; + int format_ret, st; + + prop_ret = NULL; + st = XGetWindowProperty(m_display, m_window, m_system->m_wm_state, 0, + 0x7fffffff, False, m_system->m_wm_state, &type_ret, + &format_ret, &num_ret, &bytes_after, &prop_ret); + + if ((st == Success) && (prop_ret) && (num_ret == 2)) + st = prop_ret[0]; + else + st = NormalState; + + if (prop_ret) + XFree(prop_ret); + return (st); +} + +void GHOST_WindowX11::netwmMaximized(bool set) +{ + XEvent xev; + + xev.xclient.type= ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.window = m_window; + xev.xclient.message_type = m_system->m_net_state; + xev.xclient.format = 32; + + if (set == True) + xev.xclient.data.l[0] = _NET_WM_STATE_ADD; + else + xev.xclient.data.l[0] = _NET_WM_STATE_REMOVE; + + xev.xclient.data.l[1] = m_system->m_net_max_horz; + xev.xclient.data.l[2] = m_system->m_net_max_vert; + xev.xclient.data.l[3] = 0; + xev.xclient.data.l[4] = 0; + XSendEvent (m_display, RootWindow(m_display, DefaultScreen(m_display)), + False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); +} + +bool GHOST_WindowX11::netwmIsMaximized(void) const +{ + unsigned char *prop_ret; + unsigned long bytes_after, num_ret, i; + Atom type_ret; + bool st; + int format_ret, count; + + prop_ret = NULL; + st = False; + i = XGetWindowProperty(m_display, m_window, m_system->m_net_state, 0, + 0x7fffffff, False, XA_ATOM, &type_ret, &format_ret, + &num_ret, &bytes_after, &prop_ret); + if ((i == Success) && (prop_ret) && (format_ret == 32)) { + count = 0; + for (i = 0; i < num_ret; i++) { + if (((unsigned long *) prop_ret)[i] == m_system->m_net_max_horz) + count++; + if (((unsigned long *) prop_ret)[i] == m_system->m_net_max_vert) + count++; + if (count == 2) { + st = True; + break; + } + } + } + + if (prop_ret) + XFree(prop_ret); + return (st); +} + +void GHOST_WindowX11::netwmFullScreen(bool set) +{ + XEvent xev; + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.window = m_window; + xev.xclient.message_type = m_system->m_net_state; + xev.xclient.format = 32; + + if (set == True) + xev.xclient.data.l[0] = _NET_WM_STATE_ADD; + else + xev.xclient.data.l[0] = _NET_WM_STATE_REMOVE; + + xev.xclient.data.l[1] = m_system->m_net_fullscreen; + xev.xclient.data.l[2] = 0; + xev.xclient.data.l[3] = 0; + xev.xclient.data.l[4] = 0; + XSendEvent (m_display, RootWindow(m_display, DefaultScreen(m_display)), + False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); +} + +bool GHOST_WindowX11::netwmIsFullScreen(void) const +{ + unsigned char *prop_ret; + unsigned long bytes_after, num_ret, i; + Atom type_ret; + bool st; + int format_ret; + + prop_ret = NULL; + st = False; + i = XGetWindowProperty(m_display, m_window, m_system->m_net_state, 0, + 0x7fffffff, False, XA_ATOM, &type_ret, &format_ret, + &num_ret, &bytes_after, &prop_ret); + if ((i == Success) && (prop_ret) && (format_ret == 32)) { + for (i = 0; i < num_ret; i++) { + if (((unsigned long *)prop_ret)[i] == m_system->m_net_fullscreen) { + st = True; + break; + } + } + } + + if (prop_ret) + XFree(prop_ret); + return (st); +} + +void GHOST_WindowX11::motifFullScreen(bool set) +{ + MotifWmHints hints; + + hints.flags = MWM_HINTS_DECORATIONS; + if (set == True) + hints.decorations = 0; + else + hints.decorations = 1; + + XChangeProperty(m_display, m_window, m_system->m_motif, + m_system->m_motif, 32, PropModeReplace, + (unsigned char *)&hints, 4); +} + +bool GHOST_WindowX11::motifIsFullScreen(void) const +{ + unsigned char *prop_ret; + unsigned long bytes_after, num_ret; + MotifWmHints *hints; + Atom type_ret; + bool state; + int format_ret, st; + + prop_ret = NULL; + state = False; + st = XGetWindowProperty(m_display, m_window, m_system->m_motif, 0, + 0x7fffffff, False, m_system->m_motif, + &type_ret, &format_ret, &num_ret, + &bytes_after, &prop_ret); + if ((st == Success) && (prop_ret)) { + hints = (MotifWmHints *)prop_ret; + if (hints->flags & MWM_HINTS_DECORATIONS) { + if (!hints->decorations) + state = True; + } + } - if (state == (int)getState()) { + if (prop_ret) + XFree(prop_ret); + return (state); +} + +GHOST_TWindowState GHOST_WindowX11::getState() const +{ + GHOST_TWindowState state_ret; + int state; + + state_ret = GHOST_kWindowStateNormal; + state = icccmGetState(); + /* + * In the Iconic and Withdrawn state, the window is + * unmaped, so only need return a Minimized state. + */ + if ((state == IconicState) || (state == WithdrawnState)) + state_ret = GHOST_kWindowStateMinimized; + else if (netwmIsMaximized() == True) + state_ret = GHOST_kWindowStateMaximized; + else if (netwmIsFullScreen() == True) + state_ret = GHOST_kWindowStateFullScreen; + else if (motifIsFullScreen() == True) + state_ret = GHOST_kWindowStateFullScreen; + return (state_ret); +} + +GHOST_TSuccess GHOST_WindowX11::setState(GHOST_TWindowState state) +{ + GHOST_TWindowState cur_state; + bool is_max, is_full, is_motif_full; + + cur_state = getState(); + if (state == (int)cur_state) return GHOST_kSuccess; - } else { - return GHOST_kFailure; + + if (cur_state != GHOST_kWindowStateMinimized) { + /* + * The window don't have this property's + * if it's not mapped. + */ + is_max = netwmIsMaximized(); + is_full = netwmIsFullScreen(); + } + else { + is_max = False; + is_full = False; + } + + is_motif_full = motifIsFullScreen(); + + if (state == GHOST_kWindowStateNormal) { + if (is_max == True) + netwmMaximized(False); + if (is_full == True) + netwmFullScreen(False); + if (is_motif_full == True) + motifFullScreen(False); + icccmSetState(NormalState); + return (GHOST_kSuccess); + } + + if (state == GHOST_kWindowStateFullScreen) { + /* + * We can't change to full screen if the window + * isn't mapped. + */ + if (cur_state == GHOST_kWindowStateMinimized) + return (GHOST_kFailure); + + if (is_max == True) + netwmMaximized(False); + if (is_full == False) + netwmFullScreen(True); + if (is_motif_full == False) + motifFullScreen(True); + return (GHOST_kSuccess); + } + + if (state == GHOST_kWindowStateMaximized) { + /* + * We can't change to Maximized if the window + * isn't mapped. + */ + if (cur_state == GHOST_kWindowStateMinimized) + return (GHOST_kFailure); + + if (is_full == True) + netwmFullScreen(False); + if (is_motif_full == True) + motifFullScreen(False); + if (is_max == False) + netwmMaximized(True); + return (GHOST_kSuccess); + } + + if (state == GHOST_kWindowStateMinimized) { + /* + * The window manager need save the current state of + * the window (maximized, full screen, etc). + */ + icccmSetState(IconicState); + return (GHOST_kSuccess); } + return (GHOST_kFailure); } #include @@ -701,9 +980,9 @@ setOrder( xev.xclient.message_type = atom; xev.xclient.format = 32; - xev.xclient.data.l[0] = 0; - xev.xclient.data.l[1] = 0; - xev.xclient.data.l[2] = 0; + xev.xclient.data.l[0] = 1; + xev.xclient.data.l[1] = CurrentTime; + xev.xclient.data.l[2] = m_window; xev.xclient.data.l[3] = 0; xev.xclient.data.l[4] = 0; diff --git a/intern/ghost/intern/GHOST_WindowX11.h b/intern/ghost/intern/GHOST_WindowX11.h index abb5c131cb7..1d73faaf3f6 100644 --- a/intern/ghost/intern/GHOST_WindowX11.h +++ b/intern/ghost/intern/GHOST_WindowX11.h @@ -212,6 +212,15 @@ public: const GHOST_TabletData* GetTabletData() { return &m_xtablet.CommonData; } + + /* + * Need this in case that we want start the window + * in FullScreen or Maximized state. + * Check GHOST_WindowX11.cpp + */ + bool m_post_init; + GHOST_TWindowState m_post_state; + protected: /** * Tries to install a rendering context in this window. @@ -327,6 +336,18 @@ private : /* Tablet devices */ XTablet m_xtablet; + + void icccmSetState(int state); + int icccmGetState() const; + + void netwmMaximized(bool set); + bool netwmIsMaximized() const; + + void netwmFullScreen(bool set); + bool netwmIsFullScreen() const; + + void motifFullScreen(bool set); + bool motifIsFullScreen() const; }; -- cgit v1.2.3 From e11cd5a962803747ce3c0bddaef73a47d8938b63 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 21 Sep 2008 05:38:28 +0000 Subject: game engine now compiles with SDL disabled. CDROM and Joystick wont function in this case --- intern/SoundSystem/SConscript | 3 +++ intern/SoundSystem/sdl/SND_SDLCDDevice.cpp | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/SoundSystem/SConscript b/intern/SoundSystem/SConscript index baf680f03f0..be19c4b7915 100644 --- a/intern/SoundSystem/SConscript +++ b/intern/SoundSystem/SConscript @@ -14,4 +14,7 @@ if env['WITH_BF_OPENAL']: else: defs = 'NO_SOUND' +if not env['WITH_BF_SDL']: + defs += ' DISABLE_SDL' + env.BlenderLib ('bf_soundsystem', sources, Split(incs), Split(defs), libtype=['core','player'], priority = [20,140] ) diff --git a/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp b/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp index 8bb6c642b11..0ab0fa94c7b 100644 --- a/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp +++ b/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp @@ -55,6 +55,10 @@ SND_SDLCDDevice::SND_SDLCDDevice() : void SND_SDLCDDevice::init() { +#ifdef DISABLE_SDL + fprintf(stderr, "Blender compiled without SDL, no CDROM support\n"); + return; +#else if (SDL_InitSubSystem(SDL_INIT_CDROM)) { fprintf(stderr, "Error initializing CDROM\n"); @@ -75,19 +79,23 @@ void SND_SDLCDDevice::init() /* Did if open? Check if cdrom is NULL */ if(!m_cdrom) { - fprintf(stderr, "Couldn't open drive: %s", SDL_GetError()); + fprintf(stderr, "Couldn't open drive: %s\n", SDL_GetError()); return; } +#endif } SND_SDLCDDevice::~SND_SDLCDDevice() { +#ifndef DISABLE_SDL StopCD(); SDL_CDClose(m_cdrom); +#endif } void SND_SDLCDDevice::NextFrame() { +#ifndef DISABLE_SDL m_frame++; m_frame &= 127; @@ -111,20 +119,24 @@ void SND_SDLCDDevice::NextFrame() } } +#endif } void SND_SDLCDDevice::PlayCD(int track) { +#ifndef DISABLE_SDL if ( m_cdrom && CD_INDRIVE(SDL_CDStatus(m_cdrom)) ) { SDL_CDPlayTracks(m_cdrom, track-1, 0, track, 0); m_cdplaying = true; m_cdtrack = track; } +#endif } void SND_SDLCDDevice::PauseCD(bool pause) { +#ifndef DISABLE_SDL if (!m_cdrom) return; @@ -132,13 +144,16 @@ void SND_SDLCDDevice::PauseCD(bool pause) SDL_CDPause(m_cdrom); else SDL_CDResume(m_cdrom); +#endif } void SND_SDLCDDevice::StopCD() { +#ifndef DISABLE_SDL if (m_cdrom) SDL_CDStop(m_cdrom); m_cdplaying = false; +#endif } void SND_SDLCDDevice::SetCDPlaymode(int playmode) -- cgit v1.2.3 From 6e29313ac3e8e6e6246627fb0188e8d6dd32f6c1 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 21 Sep 2008 21:41:27 +0000 Subject: Update MSVC project files --- intern/elbeem/make/msvc_7_0/elbeem.vcproj | 38 +++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 7 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/make/msvc_7_0/elbeem.vcproj b/intern/elbeem/make/msvc_7_0/elbeem.vcproj index 9de4482e2fd..958d74f8fa0 100644 --- a/intern/elbeem/make/msvc_7_0/elbeem.vcproj +++ b/intern/elbeem/make/msvc_7_0/elbeem.vcproj @@ -19,8 +19,8 @@ + + + + + + @@ -274,6 +283,9 @@ ECHO Done + + @@ -298,7 +310,13 @@ ECHO Done RelativePath="..\..\intern\attributes.h"> + RelativePath="..\..\intern\controlparticles.h"> + + + + @@ -306,6 +324,9 @@ ECHO Done + + @@ -351,6 +372,9 @@ ECHO Done + + -- cgit v1.2.3 From 80f4b5b94fc0829efeda6a7788ca76b335400715 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 22 Sep 2008 10:21:57 +0000 Subject: Removing control define --- intern/elbeem/CMakeLists.txt | 2 +- intern/elbeem/SConscript | 2 +- intern/elbeem/intern/solver_class.h | 4 ---- intern/elbeem/intern/solver_control.h | 7 ------- intern/elbeem/intern/solver_init.cpp | 9 +-------- intern/elbeem/intern/solver_main.cpp | 4 ++-- intern/elbeem/intern/solver_relax.h | 15 --------------- 7 files changed, 5 insertions(+), 38 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/CMakeLists.txt b/intern/elbeem/CMakeLists.txt index d73d0c3e06d..03fd4a3fefc 100644 --- a/intern/elbeem/CMakeLists.txt +++ b/intern/elbeem/CMakeLists.txt @@ -28,7 +28,7 @@ SET(INC ${PNG_INC} ${ZLIB_INC} ${SDL_INC} extern) FILE(GLOB SRC intern/*.cpp) -ADD_DEFINITIONS(-DNOGUI -DELBEEM_BLENDER=1 -DLBM_INCLUDE_CONTROL=1) +ADD_DEFINITIONS(-DNOGUI -DELBEEM_BLENDER=1) IF(WINDOWS) ADD_DEFINITIONS(-DUSE_MSVC6FIXES) ENDIF(WINDOWS) diff --git a/intern/elbeem/SConscript b/intern/elbeem/SConscript index 5ee8da8a071..68892ac261c 100644 --- a/intern/elbeem/SConscript +++ b/intern/elbeem/SConscript @@ -5,7 +5,7 @@ Import('env') sources = env.Glob('intern/*.cpp') -defs = 'NOGUI ELBEEM_BLENDER=1 LBM_INCLUDE_CONTROL=1' +defs = 'NOGUI ELBEEM_BLENDER=1' if env['WITH_BF_OPENMP'] == 1: defs += ' PARALLEL' diff --git a/intern/elbeem/intern/solver_class.h b/intern/elbeem/intern/solver_class.h index 310dd50617d..acfa095e1d8 100644 --- a/intern/elbeem/intern/solver_class.h +++ b/intern/elbeem/intern/solver_class.h @@ -105,9 +105,7 @@ #endif #endif -#if LBM_INCLUDE_CONTROL==1 #include "solver_control.h" -#endif #if LBM_INCLUDE_TESTSOLVERS==1 #include "solver_test.h" @@ -501,13 +499,11 @@ class LbmFsgrSolver : LbmFloat& debRAC(LbmFloat* s,int l); # endif // FSGR_STRICT_DEBUG==1 -# if LBM_INCLUDE_CONTROL==1 LbmControlData *mpControl; void initCpdata(); void handleCpdata(); void cpDebugDisplay(int dispset); -# endif // LBM_INCLUDE_CONTROL==1 bool mUseTestdata; # if LBM_INCLUDE_TESTSOLVERS==1 diff --git a/intern/elbeem/intern/solver_control.h b/intern/elbeem/intern/solver_control.h index 0f45d2133ff..57112b365ce 100644 --- a/intern/elbeem/intern/solver_control.h +++ b/intern/elbeem/intern/solver_control.h @@ -29,11 +29,6 @@ class ControlForces; #define FARF_SEPSWE 2 // relaxation macros for solver_relax.h -#if LBM_INCLUDE_CONTROL!=1 - -// defined in relax.h - -#else // LBM_INCLUDE_TESTSOLVERS!=1 // WARNING has to match controlparts.h #define CPF_ENTRIES 12 @@ -119,8 +114,6 @@ class ControlForces; if(mass0.) debMsgStd("LbmFsgrSolver::parseStdAttrList",DM_NOTIFY,"Used starttimeskip="<mPanic=1; } /*set flag*/ #endif // FSGR_STRICT_DEBUG==1 - -// #if LBM_INCLUDE_TESTSOLVERS!=1 -#if LBM_INCLUDE_CONTROL!=1 - -#define PRECOLLIDE_MODS(rho,ux,uy,uz, grav) \ - ux += (grav)[0]; \ - uy += (grav)[1]; \ - uz += (grav)[2]; - -#define TEST_IF_CHECK - -#else // LBM_INCLUDE_CONTROL!=1 -// defined in solver_control.h -#endif // LBM_INCLUDE_CONTROL!=1 - /****************************************************************************** * normal relaxation -- cgit v1.2.3 From 6e3bdacc11fc39b983420ae9d38e8b465d1cffe9 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 22 Sep 2008 10:58:50 +0000 Subject: Fixing missing function in elbeem --- intern/elbeem/extern/LBM_fluidsim.h | 5 ----- 1 file changed, 5 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/extern/LBM_fluidsim.h b/intern/elbeem/extern/LBM_fluidsim.h index 6e7fc86213c..dd8c63d0d39 100644 --- a/intern/elbeem/extern/LBM_fluidsim.h +++ b/intern/elbeem/extern/LBM_fluidsim.h @@ -63,11 +63,6 @@ void loadFluidsimMesh(struct Object *srcob, int useRenderParams); // WARNING - implemented in intern/elbeem/blendercall.cpp int performElbeemSimulation(char *cfgfilename); -/* init axis aligned BB for mesh object */ -// implemented in source/blender/blenkernel/intern/DerivedMesh.c -void fluidsimGetAxisAlignedBB(struct Mesh *mesh, float obmat[][4], - /*RET*/ float start[3], /*RET*/ float size[3], /*RET*/ struct Mesh **bbmesh ); - #endif -- cgit v1.2.3 From 558d7499a65cb17332741823d46f27cf39ce2a21 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 22 Sep 2008 15:59:04 +0000 Subject: Patch #17666 by Vladimir Marek Fixes for solaris compiling --- intern/elbeem/intern/isosurface.cpp | 4 ++++ intern/elbeem/intern/mvmcoords.h | 4 ++++ intern/elbeem/intern/solver_class.h | 1 + 3 files changed, 9 insertions(+) (limited to 'intern') diff --git a/intern/elbeem/intern/isosurface.cpp b/intern/elbeem/intern/isosurface.cpp index 9925565b85d..751a48cebba 100644 --- a/intern/elbeem/intern/isosurface.cpp +++ b/intern/elbeem/intern/isosurface.cpp @@ -13,6 +13,10 @@ #include #include +#ifdef sun +#include "ieeefp.h" +#endif + // just use default rounding for platforms where its not available #ifndef round #define round(x) (x) diff --git a/intern/elbeem/intern/mvmcoords.h b/intern/elbeem/intern/mvmcoords.h index 51b0958ed78..889f5058a09 100644 --- a/intern/elbeem/intern/mvmcoords.h +++ b/intern/elbeem/intern/mvmcoords.h @@ -27,6 +27,10 @@ #endif #endif +#ifdef sun +#include "ieeefp.h" +#endif + // weight and triangle index class mvmIndexWeight { public: diff --git a/intern/elbeem/intern/solver_class.h b/intern/elbeem/intern/solver_class.h index acfa095e1d8..f61ef72e8ab 100644 --- a/intern/elbeem/intern/solver_class.h +++ b/intern/elbeem/intern/solver_class.h @@ -100,6 +100,7 @@ // sirdude fix for solaris #if !defined(linux) && defined(sun) +#include "ieeefp.h" #ifndef expf #define expf(x) exp((double)(x)) #endif -- cgit v1.2.3 From 4e731c5ab5ba9e12748a5632329dcc0854def928 Mon Sep 17 00:00:00 2001 From: Diego Borghetti Date: Mon, 22 Sep 2008 19:09:46 +0000 Subject: Revert full screen, maximized and minimized code (rev 16543). Revert this because don't work "fine" with dual-monitor. The problem is not the code, this work fine, but full screen for a window manager is not both monitor (until set xinerama or whatever..). --- intern/ghost/intern/GHOST_SystemX11.cpp | 40 +--- intern/ghost/intern/GHOST_SystemX11.h | 16 +- intern/ghost/intern/GHOST_WindowX11.cpp | 374 +++++--------------------------- intern/ghost/intern/GHOST_WindowX11.h | 21 -- 4 files changed, 65 insertions(+), 386 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 047bc654559..8073756e453 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -96,25 +96,17 @@ GHOST_SystemX11( if (!m_display) return; #ifdef __sgi - m_delete_window_atom = XSGIFastInternAtom(m_display, + m_delete_window_atom + = XSGIFastInternAtom(m_display, "WM_DELETE_WINDOW", SGI_XA_WM_DELETE_WINDOW, False); #else - m_delete_window_atom = XInternAtom(m_display, "WM_DELETE_WINDOW", False); + m_delete_window_atom + = XInternAtom(m_display, "WM_DELETE_WINDOW", True); #endif m_wm_protocols= XInternAtom(m_display, "WM_PROTOCOLS", False); m_wm_take_focus= XInternAtom(m_display, "WM_TAKE_FOCUS", False); - m_wm_state= XInternAtom(m_display, "WM_STATE", False); - m_wm_change_state= XInternAtom(m_display, "WM_CHANGE_STATE", False); - m_net_state= XInternAtom(m_display, "_NET_WM_STATE", False); - m_net_max_horz= XInternAtom(m_display, - "_NET_WM_STATE_MAXIMIZED_HORZ", False); - m_net_max_vert= XInternAtom(m_display, - "_NET_WM_STATE_MAXIMIZED_VERT", False); - m_net_fullscreen= XInternAtom(m_display, - "_NET_WM_STATE_FULLSCREEN", False); - m_motif= XInternAtom(m_display, "_MOTIF_WM_HINTS", False); // compute the initial time timeval tv; @@ -522,12 +514,10 @@ GHOST_SystemX11::processEvent(XEvent *xe) GHOST_kEventNDOFButton, window, data); } - } - else if (((Atom)xcme.data.l[0]) == m_wm_take_focus) { + } else if (((Atom)xcme.data.l[0]) == m_wm_take_focus) { /* as ICCCM say, we need reply this event * with a SetInputFocus, the data[1] have - * the valid timestamp (send by the window - * manager). + * the valid timestamp (send by the wm). */ XSetInputFocus(m_display, xcme.window, RevertToParent, xcme.data.l[1]); } else { @@ -547,24 +537,6 @@ GHOST_SystemX11::processEvent(XEvent *xe) // XCrossingEvents pointer leave enter window. break; case MapNotify: - /* - * From ICCCM: - * [ Clients can select for StructureNotify on their - * top-level windows to track transition between - * Normal and Iconic states. Receipt of a MapNotify - * event will indicate a transition to the Normal - * state, and receipt of an UnmapNotify event will - * indicate a transition to the Iconic state. ] - */ - if (window->m_post_init == True) { - /* - * Now we are sure that the window is - * mapped, so only need change the state. - */ - window->setState(window->m_post_state); - window->m_post_init= False; - } - break; case UnmapNotify: break; case MappingNotify: diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h index 683337b47e1..576577917ba 100644 --- a/intern/ghost/intern/GHOST_SystemX11.h +++ b/intern/ghost/intern/GHOST_SystemX11.h @@ -215,21 +215,9 @@ public: */ virtual void putClipboard(GHOST_TInt8 *buffer, int flag) const; - /** - * Atom used for ICCCM, WM-spec and Motif. - * We only need get this atom at the start, it's relative - * to the display not the window and are public for every - * window that need it. - */ - Atom m_wm_protocols; + /* Atom used for ICCCM. */ Atom m_wm_take_focus; - Atom m_wm_state; - Atom m_wm_change_state; - Atom m_net_state; - Atom m_net_max_horz; - Atom m_net_max_vert; - Atom m_net_fullscreen; - Atom m_motif; + Atom m_wm_protocols; Atom m_delete_window_atom; private : diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp index 2f7aee95b82..73d61a30977 100644 --- a/intern/ghost/intern/GHOST_WindowX11.cpp +++ b/intern/ghost/intern/GHOST_WindowX11.cpp @@ -54,16 +54,6 @@ typedef struct { #define MWM_HINTS_DECORATIONS (1L << 1) -/* - * A client can't change the window property, that is the - * work of the window manager. We send a ClientMessage - * event to the Root window with the property - * and the Action (WM-spec define this): - */ -#define _NET_WM_STATE_REMOVE 0 -#define _NET_WM_STATE_ADD 1 -#define _NET_WM_STATE_TOGGLE 2 - /* import bpy I = bpy.data.images['blender.png'] # the 48x48 icon @@ -164,10 +154,10 @@ GHOST_WindowX11( // Set up the minimum atrributes that we require and see if // X can find us a visual matching those requirements. - Atom atoms[2]; - int natom; + int attributes[40], i = 0; - + Atom atoms[2]; + int natom; if(m_stereoVisual) attributes[i++] = GLX_STEREO; @@ -272,26 +262,46 @@ GHOST_WindowX11( // Are we in fullscreen mode - then include // some obscure blut code to remove decorations. - /* - * One of the problem with WM_spec is that can't set a property - * to a window that isn't mapped. That is why we can't "just - * call setState" here. - * - * To fix this, we first need know that the window is really - * mapped waiting for the MapNotify event. - * - * So, m_post_init indicate that we need wait for the MapNotify - * event and then set the window state to the m_post_state. - */ - if ((state != GHOST_kWindowStateNormal) && (state != GHOST_kWindowStateMinimized)) { - m_post_init = True; - m_post_state = state; - } - else { - m_post_init = False; - m_post_state = GHOST_kWindowStateNormal; - } + if (state == GHOST_kWindowStateFullScreen) { + MotifWmHints hints; + Atom atom; + + atom = XInternAtom(m_display, "_MOTIF_WM_HINTS", False); + + if (atom == None) { + GHOST_PRINT("Could not intern X atom for _MOTIF_WM_HINTS.\n"); + } else { + hints.flags = MWM_HINTS_DECORATIONS; + hints.decorations = 0; /* Absolutely no decorations. */ + // other hints.decorations make no sense + // you can't select individual decorations + + XChangeProperty(m_display, m_window, + atom, atom, 32, + PropModeReplace, (unsigned char *) &hints, 4); + } + } else if (state == GHOST_kWindowStateMaximized) { + // With this, xprop should report the following just after launch + // _NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ + // After demaximization the right side is empty, though (maybe not the most correct then?) + Atom state, atomh, atomv; + + state = XInternAtom(m_display, "_NET_WM_STATE", False); + atomh = XInternAtom(m_display, "_NET_WM_STATE_MAXIMIZED_HORZ", False); + atomv = XInternAtom(m_display, "_NET_WM_STATE_MAXIMIZED_VERT", False); + if (state == None ) { + GHOST_PRINT("Atom _NET_WM_STATE requested but not avaliable nor created.\n"); + } else { + XChangeProperty(m_display, m_window, + state, XA_ATOM, 32, + PropModeAppend, (unsigned char *) &atomh, 1); + XChangeProperty(m_display, m_window, + state, XA_ATOM, 32, + PropModeAppend, (unsigned char *) &atomv, 1); + } + } + // Create some hints for the window manager on how // we want this window treated. @@ -654,298 +664,28 @@ clientToScreen( outY = ay; } -void GHOST_WindowX11::icccmSetState(int state) -{ - XEvent xev; - - if (state != IconicState) - return; - - xev.xclient.type = ClientMessage; - xev.xclient.serial = 0; - xev.xclient.send_event = True; - xev.xclient.display = m_display; - xev.xclient.window = m_window; - xev.xclient.format = 32; - xev.xclient.message_type = m_system->m_wm_change_state; - xev.xclient.data.l[0] = state; - XSendEvent (m_display, RootWindow(m_display, DefaultScreen(m_display)), - False, SubstructureNotifyMask | SubstructureRedirectMask, &xev); -} - -int GHOST_WindowX11::icccmGetState(void) const -{ - unsigned char *prop_ret; - unsigned long bytes_after, num_ret; - Atom type_ret; - int format_ret, st; - - prop_ret = NULL; - st = XGetWindowProperty(m_display, m_window, m_system->m_wm_state, 0, - 0x7fffffff, False, m_system->m_wm_state, &type_ret, - &format_ret, &num_ret, &bytes_after, &prop_ret); - - if ((st == Success) && (prop_ret) && (num_ret == 2)) - st = prop_ret[0]; - else - st = NormalState; - - if (prop_ret) - XFree(prop_ret); - return (st); -} - -void GHOST_WindowX11::netwmMaximized(bool set) -{ - XEvent xev; - - xev.xclient.type= ClientMessage; - xev.xclient.serial = 0; - xev.xclient.send_event = True; - xev.xclient.window = m_window; - xev.xclient.message_type = m_system->m_net_state; - xev.xclient.format = 32; - - if (set == True) - xev.xclient.data.l[0] = _NET_WM_STATE_ADD; - else - xev.xclient.data.l[0] = _NET_WM_STATE_REMOVE; - - xev.xclient.data.l[1] = m_system->m_net_max_horz; - xev.xclient.data.l[2] = m_system->m_net_max_vert; - xev.xclient.data.l[3] = 0; - xev.xclient.data.l[4] = 0; - XSendEvent (m_display, RootWindow(m_display, DefaultScreen(m_display)), - False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); -} - -bool GHOST_WindowX11::netwmIsMaximized(void) const -{ - unsigned char *prop_ret; - unsigned long bytes_after, num_ret, i; - Atom type_ret; - bool st; - int format_ret, count; - - prop_ret = NULL; - st = False; - i = XGetWindowProperty(m_display, m_window, m_system->m_net_state, 0, - 0x7fffffff, False, XA_ATOM, &type_ret, &format_ret, - &num_ret, &bytes_after, &prop_ret); - if ((i == Success) && (prop_ret) && (format_ret == 32)) { - count = 0; - for (i = 0; i < num_ret; i++) { - if (((unsigned long *) prop_ret)[i] == m_system->m_net_max_horz) - count++; - if (((unsigned long *) prop_ret)[i] == m_system->m_net_max_vert) - count++; - if (count == 2) { - st = True; - break; - } - } - } - - if (prop_ret) - XFree(prop_ret); - return (st); -} - -void GHOST_WindowX11::netwmFullScreen(bool set) -{ - XEvent xev; - - xev.xclient.type = ClientMessage; - xev.xclient.serial = 0; - xev.xclient.send_event = True; - xev.xclient.window = m_window; - xev.xclient.message_type = m_system->m_net_state; - xev.xclient.format = 32; - - if (set == True) - xev.xclient.data.l[0] = _NET_WM_STATE_ADD; - else - xev.xclient.data.l[0] = _NET_WM_STATE_REMOVE; - - xev.xclient.data.l[1] = m_system->m_net_fullscreen; - xev.xclient.data.l[2] = 0; - xev.xclient.data.l[3] = 0; - xev.xclient.data.l[4] = 0; - XSendEvent (m_display, RootWindow(m_display, DefaultScreen(m_display)), - False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); -} - -bool GHOST_WindowX11::netwmIsFullScreen(void) const -{ - unsigned char *prop_ret; - unsigned long bytes_after, num_ret, i; - Atom type_ret; - bool st; - int format_ret; - - prop_ret = NULL; - st = False; - i = XGetWindowProperty(m_display, m_window, m_system->m_net_state, 0, - 0x7fffffff, False, XA_ATOM, &type_ret, &format_ret, - &num_ret, &bytes_after, &prop_ret); - if ((i == Success) && (prop_ret) && (format_ret == 32)) { - for (i = 0; i < num_ret; i++) { - if (((unsigned long *)prop_ret)[i] == m_system->m_net_fullscreen) { - st = True; - break; - } - } - } - - if (prop_ret) - XFree(prop_ret); - return (st); -} - -void GHOST_WindowX11::motifFullScreen(bool set) -{ - MotifWmHints hints; - - hints.flags = MWM_HINTS_DECORATIONS; - if (set == True) - hints.decorations = 0; - else - hints.decorations = 1; - XChangeProperty(m_display, m_window, m_system->m_motif, - m_system->m_motif, 32, PropModeReplace, - (unsigned char *)&hints, 4); -} - -bool GHOST_WindowX11::motifIsFullScreen(void) const -{ - unsigned char *prop_ret; - unsigned long bytes_after, num_ret; - MotifWmHints *hints; - Atom type_ret; - bool state; - int format_ret, st; - - prop_ret = NULL; - state = False; - st = XGetWindowProperty(m_display, m_window, m_system->m_motif, 0, - 0x7fffffff, False, m_system->m_motif, - &type_ret, &format_ret, &num_ret, - &bytes_after, &prop_ret); - if ((st == Success) && (prop_ret)) { - hints = (MotifWmHints *)prop_ret; - if (hints->flags & MWM_HINTS_DECORATIONS) { - if (!hints->decorations) - state = True; - } - } - - if (prop_ret) - XFree(prop_ret); - return (state); -} - -GHOST_TWindowState GHOST_WindowX11::getState() const -{ - GHOST_TWindowState state_ret; - int state; - - state_ret = GHOST_kWindowStateNormal; - state = icccmGetState(); - /* - * In the Iconic and Withdrawn state, the window is - * unmaped, so only need return a Minimized state. - */ - if ((state == IconicState) || (state == WithdrawnState)) - state_ret = GHOST_kWindowStateMinimized; - else if (netwmIsMaximized() == True) - state_ret = GHOST_kWindowStateMaximized; - else if (netwmIsFullScreen() == True) - state_ret = GHOST_kWindowStateFullScreen; - else if (motifIsFullScreen() == True) - state_ret = GHOST_kWindowStateFullScreen; - return (state_ret); + GHOST_TWindowState +GHOST_WindowX11:: +getState( +) const { + //FIXME + return GHOST_kWindowStateNormal; } -GHOST_TSuccess GHOST_WindowX11::setState(GHOST_TWindowState state) -{ - GHOST_TWindowState cur_state; - bool is_max, is_full, is_motif_full; + GHOST_TSuccess +GHOST_WindowX11:: +setState( + GHOST_TWindowState state +){ + //TODO - cur_state = getState(); - if (state == (int)cur_state) + if (state == (int)getState()) { return GHOST_kSuccess; - - if (cur_state != GHOST_kWindowStateMinimized) { - /* - * The window don't have this property's - * if it's not mapped. - */ - is_max = netwmIsMaximized(); - is_full = netwmIsFullScreen(); - } - else { - is_max = False; - is_full = False; - } - - is_motif_full = motifIsFullScreen(); - - if (state == GHOST_kWindowStateNormal) { - if (is_max == True) - netwmMaximized(False); - if (is_full == True) - netwmFullScreen(False); - if (is_motif_full == True) - motifFullScreen(False); - icccmSetState(NormalState); - return (GHOST_kSuccess); - } - - if (state == GHOST_kWindowStateFullScreen) { - /* - * We can't change to full screen if the window - * isn't mapped. - */ - if (cur_state == GHOST_kWindowStateMinimized) - return (GHOST_kFailure); - - if (is_max == True) - netwmMaximized(False); - if (is_full == False) - netwmFullScreen(True); - if (is_motif_full == False) - motifFullScreen(True); - return (GHOST_kSuccess); - } - - if (state == GHOST_kWindowStateMaximized) { - /* - * We can't change to Maximized if the window - * isn't mapped. - */ - if (cur_state == GHOST_kWindowStateMinimized) - return (GHOST_kFailure); - - if (is_full == True) - netwmFullScreen(False); - if (is_motif_full == True) - motifFullScreen(False); - if (is_max == False) - netwmMaximized(True); - return (GHOST_kSuccess); - } - - if (state == GHOST_kWindowStateMinimized) { - /* - * The window manager need save the current state of - * the window (maximized, full screen, etc). - */ - icccmSetState(IconicState); - return (GHOST_kSuccess); + } else { + return GHOST_kFailure; } - return (GHOST_kFailure); } #include diff --git a/intern/ghost/intern/GHOST_WindowX11.h b/intern/ghost/intern/GHOST_WindowX11.h index 1d73faaf3f6..abb5c131cb7 100644 --- a/intern/ghost/intern/GHOST_WindowX11.h +++ b/intern/ghost/intern/GHOST_WindowX11.h @@ -212,15 +212,6 @@ public: const GHOST_TabletData* GetTabletData() { return &m_xtablet.CommonData; } - - /* - * Need this in case that we want start the window - * in FullScreen or Maximized state. - * Check GHOST_WindowX11.cpp - */ - bool m_post_init; - GHOST_TWindowState m_post_state; - protected: /** * Tries to install a rendering context in this window. @@ -336,18 +327,6 @@ private : /* Tablet devices */ XTablet m_xtablet; - - void icccmSetState(int state); - int icccmGetState() const; - - void netwmMaximized(bool set); - bool netwmIsMaximized() const; - - void netwmFullScreen(bool set); - bool netwmIsFullScreen() const; - - void motifFullScreen(bool set); - bool motifIsFullScreen() const; }; -- cgit v1.2.3 From 7c94eed4cbec462fbe9be59453bebaef224ae478 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Wed, 24 Sep 2008 00:23:01 +0000 Subject: Fixing compile warnings --- intern/elbeem/intern/controlparticles.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/intern/controlparticles.cpp b/intern/elbeem/intern/controlparticles.cpp index 41e761c0f70..4b496e4a3a2 100644 --- a/intern/elbeem/intern/controlparticles.cpp +++ b/intern/elbeem/intern/controlparticles.cpp @@ -109,8 +109,7 @@ int ControlParticles::initFromObject(ntlGeometryObjModel *model) { ntlVec3Gfx org = start+ntlVec3Gfx(width*0.5); gfxReal distance = -1.; vector inspos; - int approxmax = (int)( ((end[0]-start[0])/width)*((end[1]-start[1])/width)*((end[2]-start[2])/width) ); - + // printf("distance: %f, width: %f\n", distance, width); while(org[2]0.)); t+=tsampling) { ControlParticleSet nextcps; //T mPartSets.push_back(nextcps); @@ -299,6 +297,7 @@ int ControlParticles::getTotalSize() #define LINE_LEN 100 int ControlParticles::initFromTextFile(string filename) { + /* const bool debugRead = false; char line[LINE_LEN]; line[LINE_LEN-1] = '\0'; @@ -341,7 +340,7 @@ int ControlParticles::initFromTextFile(string filename) //if(debugRead) printf("\nDEBUG%d r '%s'\n",lineCnt, line); if(!line) continue; - int len = (int)strlen(line); + size_t len = strlen(line); // skip empty lines and comments (#,//) if(len<1) continue; @@ -503,12 +502,14 @@ int ControlParticles::initFromTextFile(string filename) // done... fclose(infile); applyTrafos(); + */ return 1; } int ControlParticles::initFromTextFileOld(string filename) { + /* const bool debugRead = false; char line[LINE_LEN]; line[LINE_LEN-1] = '\0'; @@ -540,7 +541,7 @@ int ControlParticles::initFromTextFileOld(string filename) if(debugRead) printf("\nDEBUG%d r '%s'\n",lineCnt, line); if(!line) continue; - int len = (int)strlen(line); + size_t len = strlen(line); // skip empty lines and comments (#,//) if(len<1) continue; @@ -622,6 +623,7 @@ int ControlParticles::initFromTextFileOld(string filename) // done... fclose(infile); applyTrafos(); + */ return 1; } -- cgit v1.2.3 From 1722aeb6ea53939f96c2447e7facc58d9d324a52 Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Thu, 25 Sep 2008 15:39:46 +0000 Subject: This is part of the cleanup Campbell wanted :) Just getting rid of license_key stuff. The project files still need to be updated: projectfiles_vc7/blender/src/BL_src_cre.vcproj projectfiles_vc7/blender/blendercompactNG.vcproj Just search for these files in them. Kent --- intern/SoundSystem/intern/SND_Utils.cpp | 5 ----- 1 file changed, 5 deletions(-) (limited to 'intern') diff --git a/intern/SoundSystem/intern/SND_Utils.cpp b/intern/SoundSystem/intern/SND_Utils.cpp index 7d441964b24..05101a7e6e6 100644 --- a/intern/SoundSystem/intern/SND_Utils.cpp +++ b/intern/SoundSystem/intern/SND_Utils.cpp @@ -34,11 +34,6 @@ #include "SND_Utils.h" #include "SoundDefines.h" #include "SND_DependKludge.h" -/* -extern "C" { -#include "license_key.h" -} -*/ #include #include #include -- cgit v1.2.3 From 45035f10ecd09a8bf572d259bef41aeb92a2a150 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 29 Sep 2008 14:44:12 +0000 Subject: [#17703] Segfault on fluid activation. --- intern/elbeem/intern/solver_control.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'intern') diff --git a/intern/elbeem/intern/solver_control.cpp b/intern/elbeem/intern/solver_control.cpp index 15b9468ed0d..d3f5598e6dc 100644 --- a/intern/elbeem/intern/solver_control.cpp +++ b/intern/elbeem/intern/solver_control.cpp @@ -420,6 +420,10 @@ LbmFsgrSolver::handleCpdata() return; } + // check if we have control objects + if(mpControl->mCons.size()==0) + return; + if((mpControl->mCpUpdateInterval<1) || (this->mStepCnt%mpControl->mCpUpdateInterval==0)) { // do full reinit later on... } -- cgit v1.2.3 From 2a331067cc52693aa903a0487be29c93298c4b8b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 29 Sep 2008 17:08:11 +0000 Subject: resolve some compiler warnings with intel c/c++ compiler * subsurf code had a lot of unused variables, removed these where they are obviously not needed. commented if they could be useful later. * some variables declorations hide existing variables (many of these left), but fixed some that could cause confusion. * removed unused vars * obscure python memory leak with colorband. * make_sample_tables had a loop running wasnt used. * if 0'd functions in arithb.c that are not used yet. * made many functions static --- intern/SoundSystem/intern/SND_Utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/SoundSystem/intern/SND_Utils.cpp b/intern/SoundSystem/intern/SND_Utils.cpp index 05101a7e6e6..754c8b029a1 100644 --- a/intern/SoundSystem/intern/SND_Utils.cpp +++ b/intern/SoundSystem/intern/SND_Utils.cpp @@ -199,7 +199,7 @@ bool SND_IsSampleValid(const STR_String& name, void* memlocation) /* checks if the passed pointer is a valid sample */ -bool CheckSample(void* sample) +static bool CheckSample(void* sample) { bool valid = false; char buffer[32]; -- cgit v1.2.3 From 0eaccf881b4b23ebbf8f51ef679cab0c0e97094a Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Fri, 3 Oct 2008 13:16:10 +0000 Subject: Solaris was having problems with sqrtf and friends again. I changed sqrtf to sqrt in elbeem in bullet2 I added defines found in floatpatch.h eventually we should make a "floatpatch.h" that all of blender can use. Kent --- intern/elbeem/intern/mvmcoords.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'intern') diff --git a/intern/elbeem/intern/mvmcoords.cpp b/intern/elbeem/intern/mvmcoords.cpp index ac954b956d0..03f6482ae84 100644 --- a/intern/elbeem/intern/mvmcoords.cpp +++ b/intern/elbeem/intern/mvmcoords.cpp @@ -98,9 +98,9 @@ void MeanValueMeshCoords::computeWeights(vector &reference_vertices, if(mvmFullDebug) errMsg("MeanValueMeshCoords::computeWeights","c="< Date: Mon, 6 Oct 2008 19:57:42 +0000 Subject: patch [#17772] Fluid solver not built with OpenMP in Makefile build system Submitted By: gsr Kent --- intern/elbeem/intern/Makefile | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'intern') diff --git a/intern/elbeem/intern/Makefile b/intern/elbeem/intern/Makefile index c03b8678186..ec92a5dd5a8 100644 --- a/intern/elbeem/intern/Makefile +++ b/intern/elbeem/intern/Makefile @@ -37,6 +37,10 @@ unexport NAN_QUIET CCFLAGS += $(LEVEL_2_CPP_WARNINGS) +ifeq ($(WITH_BF_OPENMP),true) + CPPFLAGS += -DPARALLEL +endif + CPPFLAGS += -DNOGUI -DELBEEM_BLENDER CPPFLAGS += -I. CPPFLAGS += -I../extern -- cgit v1.2.3 From 77484d28d5098de2fd3924df28d846023d7751ec Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Oct 2008 05:09:24 +0000 Subject: joystick update * use SDL events to trigger the sensor, trigger was being forced every tick. removed workaround for this problem. * added "All Events" option, similar to all keys in the keyboard sensor. This means every event from the joystick will trigger the sensor, however only events from the selected type (axis/button/hat) is used to set the positive state of the sensor. * Added python function sens_joy.GetButtonValues(), returns a list of pressed button indicies. * Removed pressed/released option for joystick buttons, it was the same as the invert option. --- intern/SoundSystem/sdl/SND_SDLCDDevice.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'intern') diff --git a/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp b/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp index 0ab0fa94c7b..b1bac964c61 100644 --- a/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp +++ b/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp @@ -41,7 +41,9 @@ #include "SND_SDLCDDevice.h" #include "SoundDefines.h" +#ifndef DISABLE_SDL #include +#endif SND_SDLCDDevice::SND_SDLCDDevice() : m_cdrom(NULL), -- cgit v1.2.3 From 9ca5b78d1ad13a54f2649a7ed4287435c6727de6 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Thu, 9 Oct 2008 06:06:11 +0000 Subject: BGE bug fix: fix several bugs and inconsistencies in sound actuator: - support stopping of loop sound - support stopping by python - keep state of actuator in sync with audio device. The lack of state sync was causing several other problems: - actuator stop playing the sound - sound chopped before the end - not possible to pause sound --- intern/SoundSystem/intern/SND_Scene.cpp | 13 ++++++++++--- intern/SoundSystem/intern/SND_SoundObject.cpp | 9 ++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'intern') diff --git a/intern/SoundSystem/intern/SND_Scene.cpp b/intern/SoundSystem/intern/SND_Scene.cpp index bbf971ddc87..9d050a81161 100644 --- a/intern/SoundSystem/intern/SND_Scene.cpp +++ b/intern/SoundSystem/intern/SND_Scene.cpp @@ -388,11 +388,18 @@ void SND_Scene::UpdateActiveObects() #endif #ifdef USE_OPENAL // ok, properties Set. now see if it must play - if (pObject->GetPlaystate() == SND_MUST_PLAY) - { + switch (pObject->GetPlaystate()){ + case SND_MUST_PLAY: m_audiodevice->PlayObject(id); pObject->SetPlaystate(SND_PLAYING); - //break; + break; + case SND_MUST_STOP: + RemoveActiveObject(pObject); + break; + case SND_MUST_PAUSE: + m_audiodevice->PauseObject(id); + pObject->SetPlaystate(SND_PAUSED); + break; } #endif diff --git a/intern/SoundSystem/intern/SND_SoundObject.cpp b/intern/SoundSystem/intern/SND_SoundObject.cpp index e514a186e5e..7a244b5090d 100644 --- a/intern/SoundSystem/intern/SND_SoundObject.cpp +++ b/intern/SoundSystem/intern/SND_SoundObject.cpp @@ -91,21 +91,24 @@ SND_SoundObject::~SND_SoundObject() void SND_SoundObject::StartSound() { - m_playstate = SND_MUST_PLAY; + if (m_id >= 0) + m_playstate = SND_MUST_PLAY; } void SND_SoundObject::StopSound() { - m_playstate = SND_MUST_STOP; + if (m_id >= 0) + m_playstate = SND_MUST_STOP; } void SND_SoundObject::PauseSound() { - m_playstate = SND_MUST_PAUSE; + if (m_id >= 0) + m_playstate = SND_MUST_PAUSE; } -- cgit v1.2.3 From 44c01e2621b2a7dcd27e9d3a6d85ba2ae1bdddae Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Thu, 9 Oct 2008 12:19:16 +0000 Subject: Bugfix for [#17333] Fluid bake memory issues provided by Andre Pinto --- intern/elbeem/intern/elbeem.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'intern') diff --git a/intern/elbeem/intern/elbeem.cpp b/intern/elbeem/intern/elbeem.cpp index f7923322d5b..179e103e326 100644 --- a/intern/elbeem/intern/elbeem.cpp +++ b/intern/elbeem/intern/elbeem.cpp @@ -204,6 +204,7 @@ int elbeemAddMesh(elbeemMesh *mesh) { ntlGeometryObjModel *obj = new ntlGeometryObjModel( ); gpWorld->getRenderGlobals()->getSimScene()->addGeoClass( obj ); + gpWorld->getRenderGlobals()->getRenderScene()->addGeoClass(obj); obj->initModel( mesh->numVertices, mesh->vertices, mesh->numTriangles, mesh->triangles, mesh->channelSizeVertices, mesh->channelVertices ); -- cgit v1.2.3 From ec7407f94217cc65f5ec98774160d40f21c6b030 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 11 Oct 2008 16:03:17 +0000 Subject: Fix for bug #17793: the glFinish() call in ghost that was disabled in a previous commit, because it was causing performance issues for the game engine, apparently still is needed to solved issues with FSAA. Now instead it will still call this for blender but not anymore for blenderplayer. --- intern/ghost/intern/GHOST_WindowWin32.cpp | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index c30b915c019..6a06f4d715a 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -434,16 +434,6 @@ GHOST_TSuccess GHOST_WindowWin32::setOrder(GHOST_TWindowOrder order) GHOST_TSuccess GHOST_WindowWin32::swapBuffers() { - // adding a glFinish() here is to prevent Geforce in 'full scene antialias' mode - // from antialising the Blender window. Officially a swapbuffers does a glFinish - // itself, so this feels really like a hack... but it won't harm. (ton) - // - // disabled this because it is a performance killer for the game engine, glFinish - // forces synchronization with the graphics card and calling it is strongly - // discouraged for good performance. (brecht) - // - // glFinish(); - return ::SwapBuffers(m_hDC) == TRUE ? GHOST_kSuccess : GHOST_kFailure; } -- cgit v1.2.3 From 0d71c0a9af160963ddadde4a220c08c88011c25f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Oct 2008 00:51:55 +0000 Subject: fix for [#17783] problem when packing wav "data" is aligned differently in this wave file and the buffer was read past its allocated length. Fix this by searching for the buffer in increments of 2 (this finds the "data" for the wav file) added a check not to allow the search to go past the buffer length, so corrupt wave files should not crash. --- intern/SoundSystem/SND_Utils.h | 4 +- intern/SoundSystem/fmod/SND_FmodDevice.cpp | 2 +- intern/SoundSystem/intern/SND_Utils.cpp | 112 +++++++++++++++-------------- 3 files changed, 60 insertions(+), 58 deletions(-) (limited to 'intern') diff --git a/intern/SoundSystem/SND_Utils.h b/intern/SoundSystem/SND_Utils.h index c54aa434eec..26cf1bda11c 100644 --- a/intern/SoundSystem/SND_Utils.h +++ b/intern/SoundSystem/SND_Utils.h @@ -97,8 +97,8 @@ extern unsigned int SND_GetSampleFormat(void* sample); extern unsigned int SND_GetNumberOfChannels(void* sample); extern unsigned int SND_GetSampleRate(void* sample); extern unsigned int SND_GetBitRate(void* sample); -extern unsigned int SND_GetNumberOfSamples(void* sample); -extern unsigned int SND_GetHeaderSize(void* sample); +extern unsigned int SND_GetNumberOfSamples(void* sample, int sample_length); +extern unsigned int SND_GetHeaderSize(void* sample, int sample_length); extern unsigned int SND_GetExtraChunk(void* sample); extern void SND_GetSampleInfo(signed char* sample, SND_WaveSlot* waveslot); diff --git a/intern/SoundSystem/fmod/SND_FmodDevice.cpp b/intern/SoundSystem/fmod/SND_FmodDevice.cpp index cc252954fea..3ba0802a5b0 100644 --- a/intern/SoundSystem/fmod/SND_FmodDevice.cpp +++ b/intern/SoundSystem/fmod/SND_FmodDevice.cpp @@ -162,7 +162,7 @@ SND_WaveSlot* SND_FmodDevice::LoadSample(const STR_String& name, int numberofchannels = SND_GetNumberOfChannels(memlocation); int samplerate = SND_GetSampleRate(memlocation); int bitrate = SND_GetBitRate(memlocation); - int numberofsamples = SND_GetNumberOfSamples(memlocation); + int numberofsamples = SND_GetNumberOfSamples(memlocation, size); waveslot->SetFileSize(size); waveslot->SetData(memlocation); diff --git a/intern/SoundSystem/intern/SND_Utils.cpp b/intern/SoundSystem/intern/SND_Utils.cpp index 754c8b029a1..58023dd5c50 100644 --- a/intern/SoundSystem/intern/SND_Utils.cpp +++ b/intern/SoundSystem/intern/SND_Utils.cpp @@ -285,10 +285,9 @@ unsigned int SND_GetBitRate(void* sample) /* gets the length of the actual sample data (without the header) */ -unsigned int SND_GetNumberOfSamples(void* sample) +unsigned int SND_GetNumberOfSamples(void* sample, int sample_length) { unsigned int chunklength, length = 0, offset = 16; - char data[4]; if (CheckSample(sample)) { @@ -297,14 +296,15 @@ unsigned int SND_GetNumberOfSamples(void* sample) if (SND_fEndian == SND_endianBig) SWITCH_INT(chunklength); offset = offset + chunklength + 4; - memcpy(data, ((char*)sample) + offset, 4); /* This seems very unsafe, what if data is never found (f.i. corrupt file)... */ // lets find "data" - while (memcmp(data, "data", 4)) + while (memcmp(((char*)sample) + offset, "data", 4)) { - offset += 4; - memcpy(data, ((char*)sample) + offset, 4); + offset += 2; + + if (offset+4 > sample_length) /* save us from crashing */ + return 0; } offset += 4; memcpy(&length, ((char*)sample) + offset, 4); @@ -319,10 +319,9 @@ unsigned int SND_GetNumberOfSamples(void* sample) /* gets the size of the entire header (file - sampledata) */ -unsigned int SND_GetHeaderSize(void* sample) +unsigned int SND_GetHeaderSize(void* sample, int sample_length) { unsigned int chunklength, headersize = 0, offset = 16; - char data[4]; if (CheckSample(sample)) { @@ -330,13 +329,14 @@ unsigned int SND_GetHeaderSize(void* sample) /* This was endian unsafe. See top of the file for the define. */ if (SND_fEndian == SND_endianBig) SWITCH_INT(chunklength); offset = offset + chunklength + 4; - memcpy(data, ((char*)sample) + offset, 4); // lets find "data" - while (memcmp(data, "data", 4)) + while (memcmp(((char*)sample) + offset, "data", 4)) { - offset += 4; - memcpy(data, ((char*)sample) + offset, 4); + offset += 2; + + if (offset+4 > sample_length) /* save us from crashing */ + return 0; } headersize = offset + 8; } @@ -382,58 +382,60 @@ void SND_GetSampleInfo(signed char* sample, SND_WaveSlot* waveslot) if (CheckSample(sample)) { memcpy(&fileheader, sample, sizeof(WavFileHeader)); - fileheader.size = SND_GetHeaderSize(sample); - sample += sizeof(WavFileHeader); - fileheader.size = ((fileheader.size+1) & ~1) - 4; + fileheader.size = SND_GetHeaderSize(sample, waveslot->GetFileSize()); + if (fileheader.size) { /* this may fail for corrupt files */ + sample += sizeof(WavFileHeader); + fileheader.size = ((fileheader.size+1) & ~1) - 4; - while ((fileheader.size > 0) && (memcpy(&chunkheader, sample, sizeof(WavChunkHeader)))) - { - sample += sizeof(WavChunkHeader); - if (!memcmp(chunkheader.id, "fmt ", 4)) - { - memcpy(&fmtheader, sample, sizeof(WavFmtHeader)); - waveslot->SetSampleFormat(fmtheader.format); - - if (fmtheader.format == 0x0001) - { - waveslot->SetNumberOfChannels(fmtheader.numberofchannels); - waveslot->SetBitRate(fmtheader.bitrate); - waveslot->SetSampleRate(fmtheader.samplerate); - sample += chunkheader.size; - } - else - { - memcpy(&fmtexheader, sample, sizeof(WavFmtExHeader)); - sample += chunkheader.size; - } - } - else if (!memcmp(chunkheader.id, "data", 4)) + while ((fileheader.size > 0) && (memcpy(&chunkheader, sample, sizeof(WavChunkHeader)))) { - if (fmtheader.format == 0x0001) + sample += sizeof(WavChunkHeader); + if (!memcmp(chunkheader.id, "fmt ", 4)) { - waveslot->SetNumberOfSamples(chunkheader.size); - sample += chunkheader.size; + memcpy(&fmtheader, sample, sizeof(WavFmtHeader)); + waveslot->SetSampleFormat(fmtheader.format); + + if (fmtheader.format == 0x0001) + { + waveslot->SetNumberOfChannels(fmtheader.numberofchannels); + waveslot->SetBitRate(fmtheader.bitrate); + waveslot->SetSampleRate(fmtheader.samplerate); + sample += chunkheader.size; + } + else + { + memcpy(&fmtexheader, sample, sizeof(WavFmtExHeader)); + sample += chunkheader.size; + } } - else if (fmtheader.format == 0x0011) + else if (!memcmp(chunkheader.id, "data", 4)) { - //IMA ADPCM + if (fmtheader.format == 0x0001) + { + waveslot->SetNumberOfSamples(chunkheader.size); + sample += chunkheader.size; + } + else if (fmtheader.format == 0x0011) + { + //IMA ADPCM + } + else if (fmtheader.format == 0x0055) + { + //MP3 WAVE + } } - else if (fmtheader.format == 0x0055) + else if (!memcmp(chunkheader.id, "smpl", 4)) { - //MP3 WAVE + memcpy(&sampleheader, sample, sizeof(WavSampleHeader)); + //loop = sampleheader.loops; + sample += chunkheader.size; } - } - else if (!memcmp(chunkheader.id, "smpl", 4)) - { - memcpy(&sampleheader, sample, sizeof(WavSampleHeader)); - //loop = sampleheader.loops; - sample += chunkheader.size; - } - else - sample += chunkheader.size; + else + sample += chunkheader.size; - sample += chunkheader.size & 1; - fileheader.size -= (((chunkheader.size + 1) & ~1) + 8); + sample += chunkheader.size & 1; + fileheader.size -= (((chunkheader.size + 1) & ~1) + 8); + } } } } -- cgit v1.2.3 From 167676dbfeae96459247dcf627e34aec1c409048 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Oct 2008 07:58:05 +0000 Subject: read wave files block align value, rather then assuming 2 or 4. --- intern/SoundSystem/intern/SND_Utils.cpp | 34 +++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'intern') diff --git a/intern/SoundSystem/intern/SND_Utils.cpp b/intern/SoundSystem/intern/SND_Utils.cpp index 58023dd5c50..1593dd6c794 100644 --- a/intern/SoundSystem/intern/SND_Utils.cpp +++ b/intern/SoundSystem/intern/SND_Utils.cpp @@ -287,21 +287,27 @@ unsigned int SND_GetBitRate(void* sample) /* gets the length of the actual sample data (without the header) */ unsigned int SND_GetNumberOfSamples(void* sample, int sample_length) { - unsigned int chunklength, length = 0, offset = 16; - + unsigned int chunklength, length = 0, offset; + unsigned short block_align; if (CheckSample(sample)) { - memcpy(&chunklength, ((char*)sample) + offset, 4); + memcpy(&chunklength, ((char*)sample) + 16, 4); + memcpy(&block_align, ((char*)sample) + 32, 2); /* always 2 or 4 it seems */ + /* This was endian unsafe. See top of the file for the define. */ - if (SND_fEndian == SND_endianBig) SWITCH_INT(chunklength); - - offset = offset + chunklength + 4; + if (SND_fEndian == SND_endianBig) + { + SWITCH_INT(chunklength); + SWITCH_SHORT(block_align); + } + + offset = 16 + chunklength + 4; /* This seems very unsafe, what if data is never found (f.i. corrupt file)... */ // lets find "data" while (memcmp(((char*)sample) + offset, "data", 4)) { - offset += 2; + offset += block_align; if (offset+4 > sample_length) /* save us from crashing */ return 0; @@ -322,18 +328,24 @@ unsigned int SND_GetNumberOfSamples(void* sample, int sample_length) unsigned int SND_GetHeaderSize(void* sample, int sample_length) { unsigned int chunklength, headersize = 0, offset = 16; - + unsigned short block_align; if (CheckSample(sample)) { memcpy(&chunklength, ((char*)sample) + offset, 4); + memcpy(&block_align, ((char*)sample) + 32, 2); /* always 2 or 4 it seems */ + /* This was endian unsafe. See top of the file for the define. */ - if (SND_fEndian == SND_endianBig) SWITCH_INT(chunklength); + if (SND_fEndian == SND_endianBig) + { + SWITCH_INT(chunklength); + SWITCH_SHORT(block_align); + } offset = offset + chunklength + 4; // lets find "data" while (memcmp(((char*)sample) + offset, "data", 4)) { - offset += 2; + offset += block_align; if (offset+4 > sample_length) /* save us from crashing */ return 0; @@ -341,12 +353,10 @@ unsigned int SND_GetHeaderSize(void* sample, int sample_length) headersize = offset + 8; } - return headersize; } - unsigned int SND_GetExtraChunk(void* sample) { unsigned int extrachunk = 0, chunklength, offset = 16; -- cgit v1.2.3 From 2ee4feda268f5c73938f78d06321163d8eeb467a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Oct 2008 10:39:45 +0000 Subject: c3d_import needed encoding defined for python 2.5+ to run. wav file reading minor fix checking array bounds. --- intern/SoundSystem/intern/SND_Utils.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/SoundSystem/intern/SND_Utils.cpp b/intern/SoundSystem/intern/SND_Utils.cpp index 1593dd6c794..78115807970 100644 --- a/intern/SoundSystem/intern/SND_Utils.cpp +++ b/intern/SoundSystem/intern/SND_Utils.cpp @@ -309,7 +309,7 @@ unsigned int SND_GetNumberOfSamples(void* sample, int sample_length) { offset += block_align; - if (offset+4 > sample_length) /* save us from crashing */ + if (offset+block_align > sample_length) /* save us from crashing */ return 0; } offset += 4; @@ -347,7 +347,7 @@ unsigned int SND_GetHeaderSize(void* sample, int sample_length) { offset += block_align; - if (offset+4 > sample_length) /* save us from crashing */ + if (offset+block_align > sample_length) /* save us from crashing */ return 0; } headersize = offset + 8; -- cgit v1.2.3 From 71206c9337ec88d8711fa66c128fe464cf27e451 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Tue, 21 Oct 2008 23:07:09 +0000 Subject: Patch from Timothy Baldridge * add irix6 to GHOST windowing system (same as linux2 et al) * fix faulty return lines in shrinkwrap.c --- intern/ghost/SConscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/ghost/SConscript b/intern/ghost/SConscript index 40968e816a9..f6283cfc0f2 100644 --- a/intern/ghost/SConscript +++ b/intern/ghost/SConscript @@ -10,7 +10,7 @@ sources = env.Glob('intern/*.cpp') pf = ['GHOST_DisplayManager', 'GHOST_System', 'GHOST_Window'] -if window_system in ('linux2', 'openbsd3', 'sunos5', 'freebsd6'): +if window_system in ('linux2', 'openbsd3', 'sunos5', 'freebsd6', 'irix6'): for f in pf: sources.remove('intern' + os.sep + f + 'Win32.cpp') sources.remove('intern' + os.sep + f + 'Carbon.cpp') -- cgit v1.2.3 From 2ecf987dc665eff477fb03a0cef0b2972e4b78d2 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Wed, 22 Oct 2008 11:28:10 +0000 Subject: * Minor cleanup of SCons files - cleanup of boolean usage - use True and False now instead of 'true'/'false' or 0/1 - changed SConscripts accordingly --- intern/SConscript | 2 +- intern/elbeem/SConscript | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/SConscript b/intern/SConscript index f6092b7bd02..82c7739bf42 100644 --- a/intern/SConscript +++ b/intern/SConscript @@ -20,7 +20,7 @@ SConscript(['SoundSystem/SConscript', # perhaps get rid of intern/csg? NEW_CSG='false' -if env['BF_NO_ELBEEM'] == 0: +if not env['BF_NO_ELBEEM']: SConscript(['elbeem/SConscript']) if NEW_CSG=='false': diff --git a/intern/elbeem/SConscript b/intern/elbeem/SConscript index 68892ac261c..f1c09423f04 100644 --- a/intern/elbeem/SConscript +++ b/intern/elbeem/SConscript @@ -7,7 +7,7 @@ sources = env.Glob('intern/*.cpp') defs = 'NOGUI ELBEEM_BLENDER=1' -if env['WITH_BF_OPENMP'] == 1: +if env['WITH_BF_OPENMP']: defs += ' PARALLEL' if env['OURPLATFORM']=='win32-vc': -- cgit v1.2.3 From 44efce4f669a95291b96fff52b7cb664f50447fb Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Fri, 31 Oct 2008 20:47:30 +0000 Subject: * remove unreferenced var --- intern/ghost/intern/GHOST_WindowWin32.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index 6a06f4d715a..2094ae87c67 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -854,7 +854,7 @@ static int WeightPixelFormat(PIXELFORMATDESCRIPTOR& pfd) { static int EnumPixelFormats(HDC hdc) { int iPixelFormat; int i, n, w, weight = 0; - PIXELFORMATDESCRIPTOR pfd, pfd_fallback; + PIXELFORMATDESCRIPTOR pfd; /* we need a device context to do anything */ if(!hdc) return 0; -- cgit v1.2.3 From fecdd6045394c3b8faba44e0981e894ff7a48a4e Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sat, 8 Nov 2008 12:01:55 +0000 Subject: * use msvc proposed names when building on win32 --- intern/SoundSystem/intern/SND_Utils.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/SoundSystem/intern/SND_Utils.cpp b/intern/SoundSystem/intern/SND_Utils.cpp index 78115807970..26ce106a24e 100644 --- a/intern/SoundSystem/intern/SND_Utils.cpp +++ b/intern/SoundSystem/intern/SND_Utils.cpp @@ -40,8 +40,13 @@ #include #include -#if defined(WIN32) +#if defined(_WIN32) #include +#define open _open +#define read _read +#define close _close +#define write _write +#define lseek _lseek #else #include #endif -- cgit v1.2.3 From 8eec6cecc076009b2fc23d4464315bd4c8936806 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Mon, 10 Nov 2008 15:36:58 +0000 Subject: Add MSVC90 project files - part 1. --- .../SoundSystem/make/msvc_9_0/SoundSystem.vcproj | 446 +++++++++ .../make/msvc_9_0/dummy/DummySoundSystem.vcproj | 342 +++++++ .../make/msvc_9_0/openal/OpenALSoundSystem.vcproj | 350 ++++++++ intern/bmfont/make/msvc_9_0/bmfont.vcproj | 412 +++++++++ intern/boolop/make/msvc_9_0/boolop.vcproj | 486 ++++++++++ intern/bsp/make/msvc_9_0/bsplib.vcproj | 370 ++++++++ intern/container/make/msvc_9_0/container.vcproj | 386 ++++++++ intern/decimation/make/msvc_9_0/decimation.vcproj | 422 +++++++++ intern/elbeem/make/msvc_9_0/elbeem.vcproj | 523 +++++++++++ intern/ghost/make/msvc_9_0/ghost.vcproj | 538 +++++++++++ .../guardedalloc/make/msvc_9_0/guardedalloc.vcproj | 368 ++++++++ intern/iksolver/make/msvc_9_0/iksolver.vcproj | 486 ++++++++++ intern/memutil/make/msvc_9_0/memutil.vcproj | 384 ++++++++ intern/moto/make/msvc_9_0/moto.vcproj | 712 +++++++++++++++ intern/opennl/make/msvc_9_0/opennl.vcproj | 992 +++++++++++++++++++++ intern/string/make/msvc_9_0/string.vcproj | 354 ++++++++ 16 files changed, 7571 insertions(+) create mode 100644 intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj create mode 100644 intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj create mode 100644 intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj create mode 100644 intern/bmfont/make/msvc_9_0/bmfont.vcproj create mode 100644 intern/boolop/make/msvc_9_0/boolop.vcproj create mode 100644 intern/bsp/make/msvc_9_0/bsplib.vcproj create mode 100644 intern/container/make/msvc_9_0/container.vcproj create mode 100644 intern/decimation/make/msvc_9_0/decimation.vcproj create mode 100644 intern/elbeem/make/msvc_9_0/elbeem.vcproj create mode 100644 intern/ghost/make/msvc_9_0/ghost.vcproj create mode 100644 intern/guardedalloc/make/msvc_9_0/guardedalloc.vcproj create mode 100644 intern/iksolver/make/msvc_9_0/iksolver.vcproj create mode 100644 intern/memutil/make/msvc_9_0/memutil.vcproj create mode 100644 intern/moto/make/msvc_9_0/moto.vcproj create mode 100644 intern/opennl/make/msvc_9_0/opennl.vcproj create mode 100644 intern/string/make/msvc_9_0/string.vcproj (limited to 'intern') diff --git a/intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj b/intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj new file mode 100644 index 00000000000..fd016af0375 --- /dev/null +++ b/intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj b/intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj new file mode 100644 index 00000000000..e64047dd26e --- /dev/null +++ b/intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj b/intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj new file mode 100644 index 00000000000..846d2ae9053 --- /dev/null +++ b/intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj @@ -0,0 +1,350 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/bmfont/make/msvc_9_0/bmfont.vcproj b/intern/bmfont/make/msvc_9_0/bmfont.vcproj new file mode 100644 index 00000000000..a4722dc570c --- /dev/null +++ b/intern/bmfont/make/msvc_9_0/bmfont.vcproj @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/boolop/make/msvc_9_0/boolop.vcproj b/intern/boolop/make/msvc_9_0/boolop.vcproj new file mode 100644 index 00000000000..c8ff9d36173 --- /dev/null +++ b/intern/boolop/make/msvc_9_0/boolop.vcproj @@ -0,0 +1,486 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/bsp/make/msvc_9_0/bsplib.vcproj b/intern/bsp/make/msvc_9_0/bsplib.vcproj new file mode 100644 index 00000000000..8164e3cf991 --- /dev/null +++ b/intern/bsp/make/msvc_9_0/bsplib.vcproj @@ -0,0 +1,370 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/container/make/msvc_9_0/container.vcproj b/intern/container/make/msvc_9_0/container.vcproj new file mode 100644 index 00000000000..694c256d2c4 --- /dev/null +++ b/intern/container/make/msvc_9_0/container.vcproj @@ -0,0 +1,386 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/decimation/make/msvc_9_0/decimation.vcproj b/intern/decimation/make/msvc_9_0/decimation.vcproj new file mode 100644 index 00000000000..5ff14fd934a --- /dev/null +++ b/intern/decimation/make/msvc_9_0/decimation.vcproj @@ -0,0 +1,422 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/elbeem/make/msvc_9_0/elbeem.vcproj b/intern/elbeem/make/msvc_9_0/elbeem.vcproj new file mode 100644 index 00000000000..194825c655b --- /dev/null +++ b/intern/elbeem/make/msvc_9_0/elbeem.vcproj @@ -0,0 +1,523 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/ghost/make/msvc_9_0/ghost.vcproj b/intern/ghost/make/msvc_9_0/ghost.vcproj new file mode 100644 index 00000000000..6e4f1021dcd --- /dev/null +++ b/intern/ghost/make/msvc_9_0/ghost.vcproj @@ -0,0 +1,538 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/guardedalloc/make/msvc_9_0/guardedalloc.vcproj b/intern/guardedalloc/make/msvc_9_0/guardedalloc.vcproj new file mode 100644 index 00000000000..547f5e184ae --- /dev/null +++ b/intern/guardedalloc/make/msvc_9_0/guardedalloc.vcproj @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/iksolver/make/msvc_9_0/iksolver.vcproj b/intern/iksolver/make/msvc_9_0/iksolver.vcproj new file mode 100644 index 00000000000..84e02602d95 --- /dev/null +++ b/intern/iksolver/make/msvc_9_0/iksolver.vcproj @@ -0,0 +1,486 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/memutil/make/msvc_9_0/memutil.vcproj b/intern/memutil/make/msvc_9_0/memutil.vcproj new file mode 100644 index 00000000000..4b9db855e07 --- /dev/null +++ b/intern/memutil/make/msvc_9_0/memutil.vcproj @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/moto/make/msvc_9_0/moto.vcproj b/intern/moto/make/msvc_9_0/moto.vcproj new file mode 100644 index 00000000000..656cbcf0475 --- /dev/null +++ b/intern/moto/make/msvc_9_0/moto.vcproj @@ -0,0 +1,712 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/opennl/make/msvc_9_0/opennl.vcproj b/intern/opennl/make/msvc_9_0/opennl.vcproj new file mode 100644 index 00000000000..d30099902bd --- /dev/null +++ b/intern/opennl/make/msvc_9_0/opennl.vcproj @@ -0,0 +1,992 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/string/make/msvc_9_0/string.vcproj b/intern/string/make/msvc_9_0/string.vcproj new file mode 100644 index 00000000000..d92498f6202 --- /dev/null +++ b/intern/string/make/msvc_9_0/string.vcproj @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 61a83d2fbadbaff39f72743d4a0a3c037cfcce8f Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Mon, 10 Nov 2008 21:22:22 +0000 Subject: Add MSVC90 project files - part 3. Extern and Intern projects are merged in projectfiles_vc9\blender\blender.sln solution, you just need to open that solution to compile everything with VS2008. --- .../SoundSystem/make/msvc_9_0/SoundSystem.vcproj | 3 +- .../make/msvc_9_0/dummy/DummySoundSystem.vcproj | 3 +- .../make/msvc_9_0/openal/OpenALSoundSystem.vcproj | 3 +- intern/bmfont/make/msvc_9_0/bmfont.vcproj | 3 +- intern/boolop/make/msvc_9_0/boolop.vcproj | 3 +- intern/bsp/make/msvc_9_0/bsplib.vcproj | 3 +- intern/container/make/msvc_9_0/container.vcproj | 3 +- intern/decimation/make/msvc_9_0/decimation.vcproj | 3 +- intern/elbeem/make/msvc_9_0/elbeem.vcproj | 3 +- intern/ghost/make/msvc_9_0/ghost.vcproj | 3 +- .../guardedalloc/make/msvc_9_0/guardedalloc.vcproj | 3 +- intern/iksolver/make/msvc_9_0/iksolver.vcproj | 3 +- intern/make/msvc_9_0/INT_build_install_all.vcproj | 109 +++++++++++++++++++++ intern/memutil/make/msvc_9_0/memutil.vcproj | 3 +- intern/moto/make/msvc_9_0/moto.vcproj | 3 +- intern/opennl/make/msvc_9_0/opennl.vcproj | 3 +- intern/string/make/msvc_9_0/string.vcproj | 3 +- 17 files changed, 141 insertions(+), 16 deletions(-) create mode 100644 intern/make/msvc_9_0/INT_build_install_all.vcproj (limited to 'intern') diff --git a/intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj b/intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj index fd016af0375..bd75fe88d43 100644 --- a/intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj +++ b/intern/SoundSystem/make/msvc_9_0/SoundSystem.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj b/intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj index e64047dd26e..2109d92d430 100644 --- a/intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj +++ b/intern/SoundSystem/make/msvc_9_0/dummy/DummySoundSystem.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj b/intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj index 846d2ae9053..5593f00cb2b 100644 --- a/intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj +++ b/intern/SoundSystem/make/msvc_9_0/openal/OpenALSoundSystem.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/bmfont/make/msvc_9_0/bmfont.vcproj b/intern/bmfont/make/msvc_9_0/bmfont.vcproj index a4722dc570c..91d6e6afc1a 100644 --- a/intern/bmfont/make/msvc_9_0/bmfont.vcproj +++ b/intern/bmfont/make/msvc_9_0/bmfont.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/boolop/make/msvc_9_0/boolop.vcproj b/intern/boolop/make/msvc_9_0/boolop.vcproj index c8ff9d36173..7fe83962695 100644 --- a/intern/boolop/make/msvc_9_0/boolop.vcproj +++ b/intern/boolop/make/msvc_9_0/boolop.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/bsp/make/msvc_9_0/bsplib.vcproj b/intern/bsp/make/msvc_9_0/bsplib.vcproj index 8164e3cf991..a1b16d5b93f 100644 --- a/intern/bsp/make/msvc_9_0/bsplib.vcproj +++ b/intern/bsp/make/msvc_9_0/bsplib.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/container/make/msvc_9_0/container.vcproj b/intern/container/make/msvc_9_0/container.vcproj index 694c256d2c4..2b40571672d 100644 --- a/intern/container/make/msvc_9_0/container.vcproj +++ b/intern/container/make/msvc_9_0/container.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/decimation/make/msvc_9_0/decimation.vcproj b/intern/decimation/make/msvc_9_0/decimation.vcproj index 5ff14fd934a..7d58bf1f4c6 100644 --- a/intern/decimation/make/msvc_9_0/decimation.vcproj +++ b/intern/decimation/make/msvc_9_0/decimation.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/elbeem/make/msvc_9_0/elbeem.vcproj b/intern/elbeem/make/msvc_9_0/elbeem.vcproj index 194825c655b..4108e09799d 100644 --- a/intern/elbeem/make/msvc_9_0/elbeem.vcproj +++ b/intern/elbeem/make/msvc_9_0/elbeem.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/ghost/make/msvc_9_0/ghost.vcproj b/intern/ghost/make/msvc_9_0/ghost.vcproj index 6e4f1021dcd..fa128786a90 100644 --- a/intern/ghost/make/msvc_9_0/ghost.vcproj +++ b/intern/ghost/make/msvc_9_0/ghost.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/guardedalloc/make/msvc_9_0/guardedalloc.vcproj b/intern/guardedalloc/make/msvc_9_0/guardedalloc.vcproj index 547f5e184ae..d59b80f7b62 100644 --- a/intern/guardedalloc/make/msvc_9_0/guardedalloc.vcproj +++ b/intern/guardedalloc/make/msvc_9_0/guardedalloc.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/iksolver/make/msvc_9_0/iksolver.vcproj b/intern/iksolver/make/msvc_9_0/iksolver.vcproj index 84e02602d95..0e87556380b 100644 --- a/intern/iksolver/make/msvc_9_0/iksolver.vcproj +++ b/intern/iksolver/make/msvc_9_0/iksolver.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/make/msvc_9_0/INT_build_install_all.vcproj b/intern/make/msvc_9_0/INT_build_install_all.vcproj new file mode 100644 index 00000000000..dbb58134b0f --- /dev/null +++ b/intern/make/msvc_9_0/INT_build_install_all.vcproj @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/intern/memutil/make/msvc_9_0/memutil.vcproj b/intern/memutil/make/msvc_9_0/memutil.vcproj index 4b9db855e07..6f642fb16bc 100644 --- a/intern/memutil/make/msvc_9_0/memutil.vcproj +++ b/intern/memutil/make/msvc_9_0/memutil.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/moto/make/msvc_9_0/moto.vcproj b/intern/moto/make/msvc_9_0/moto.vcproj index 656cbcf0475..b33bb165a75 100644 --- a/intern/moto/make/msvc_9_0/moto.vcproj +++ b/intern/moto/make/msvc_9_0/moto.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/opennl/make/msvc_9_0/opennl.vcproj b/intern/opennl/make/msvc_9_0/opennl.vcproj index d30099902bd..28051a491d2 100644 --- a/intern/opennl/make/msvc_9_0/opennl.vcproj +++ b/intern/opennl/make/msvc_9_0/opennl.vcproj @@ -2,8 +2,9 @@ diff --git a/intern/string/make/msvc_9_0/string.vcproj b/intern/string/make/msvc_9_0/string.vcproj index d92498f6202..16df974ff9c 100644 --- a/intern/string/make/msvc_9_0/string.vcproj +++ b/intern/string/make/msvc_9_0/string.vcproj @@ -2,8 +2,9 @@ -- cgit v1.2.3 From 483136c8e4d73fafe2b3e0953a6325107558d896 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 11 Nov 2008 14:14:22 +0000 Subject: Adjusted scons files so disabling quicktime, python and sdl also removes their includes when building. writefile.c had usless include. --- intern/elbeem/SConscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/elbeem/SConscript b/intern/elbeem/SConscript index f1c09423f04..dc8d84ef5a0 100644 --- a/intern/elbeem/SConscript +++ b/intern/elbeem/SConscript @@ -12,7 +12,7 @@ if env['WITH_BF_OPENMP']: if env['OURPLATFORM']=='win32-vc': defs += ' USE_MSVC6FIXES' -incs = env['BF_PNG_INC'] + ' ' + env['BF_ZLIB_INC'] + ' ' +env['BF_SDL_INC'] +incs = env['BF_PNG_INC'] + ' ' + env['BF_ZLIB_INC'] incs += ' extern ' env.BlenderLib ('bf_elbeem', sources, Split(incs), Split(defs), libtype='blender', priority=0 ) -- cgit v1.2.3