forked from bartvdbraak/blender
ok, apparently didn't commit this either. apparently includes a merge with trunk/2.5 at r24811 I thought I'd committed but did not, yeek.
This commit is contained in:
commit
abd16aac5a
@ -70,7 +70,6 @@ OPTION(WITH_PYTHON "Enable Embedded Python API" ON)
|
||||
OPTION(WITH_SDL "Enable SDL for sound and joystick support" ON)
|
||||
OPTION(WITH_OPENJPEG "Enable OpenJpeg Support (http://www.openjpeg.org/)" OFF)
|
||||
OPTION(WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON)
|
||||
OPTION(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" OFF)
|
||||
OPTION(WITH_WEBPLUGIN "Enable Web Plugin (Unix only)" OFF)
|
||||
OPTION(WITH_FFTW3 "Enable FFTW3 support" OFF)
|
||||
OPTION(WITH_JACK "Enable Jack Support (http://www.jackaudio.org)" OFF)
|
||||
@ -82,27 +81,23 @@ OPTION(WITH_BUILDINFO "Include extra build details" ON)
|
||||
OPTION(WITH_INSTALL "Install accompanying scripts and language files needed to run blender" ON)
|
||||
OPTION(WITH_OPENCOLLADA "Enable OpenCollada Support (http://www.opencollada.org/)" OFF)
|
||||
|
||||
# Unix defaults to OpenMP On
|
||||
IF (UNIX)
|
||||
OPTION(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" ON)
|
||||
ELSE(UNIX)
|
||||
OPTION(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" OFF)
|
||||
ENDIF(UNIX)
|
||||
|
||||
IF (APPLE)
|
||||
OPTION(WITH_COCOA "Use Cocoa framework instead of deprecated Carbon" ON)
|
||||
OPTION(WITH_LIBS10.5 "Use 10.5 libs (needed for 64bit builds)" OFF)
|
||||
OPTION(WITH_COCOA "Use Cocoa framework instead of deprecated Carbon" ON)
|
||||
OPTION(USE_QTKIT "Use QtKit instead of Carbon quicktime (needed for having partial quicktime for 64bit)" OFF)
|
||||
OPTION(WITH_LIBS10.5 "Use 10.5 libs (needed for 64bit builds)" OFF)
|
||||
ENDIF (APPLE)
|
||||
|
||||
IF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
|
||||
MESSAGE("WARNING: WITH_PLAYER needs WITH_GAMEENGINE")
|
||||
ENDIF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
|
||||
|
||||
IF (WITH_OPENCOLLADA AND NOT APPLE)
|
||||
SET(OPENCOLLADA /usr/local/opencollada CACHE FILEPATH "OpenCollada Directory")
|
||||
SET(OPENCOLLADA_LIBPATH ${OPENCOLLADA})
|
||||
SET(OPENCOLLADA_LIB OpenCollada)
|
||||
SET(PCRE /usr CACHE FILEPATH "PCRE Directory")
|
||||
SET(PCRE_LIBPATH ${PCRE}/lib)
|
||||
SET(PCRE_LIB pcre)
|
||||
SET(EXPAT /usr CACHE FILEPATH "Expat Directory")
|
||||
SET(EXPAT_LIBPATH ${EXPAT}/lib)
|
||||
SET(EXPAT_LIB expat)
|
||||
ENDIF (WITH_OPENCOLLADA AND NOT APPLE)
|
||||
|
||||
# For alternate Python locations the commandline can be used to override detected/default cache settings, e.g:
|
||||
# On Unix:
|
||||
# cmake -D PYTHON_LIB=/usr/local/lib/python2.3/config/libpython2.3.so -D PYTHON_INC=/usr/local/include/python2.3 -D PYTHON_BINARY=/usr/local/bin/python2.3 -G "Unix Makefiles" ../blender
|
||||
@ -119,6 +114,8 @@ INCLUDE(CMake/macros.cmake)
|
||||
#Platform specifics
|
||||
|
||||
IF(UNIX AND NOT APPLE)
|
||||
|
||||
|
||||
IF(WITH_OPENAL)
|
||||
FIND_PACKAGE(OpenAL)
|
||||
IF(OPENAL_FOUND)
|
||||
@ -217,6 +214,20 @@ IF(UNIX AND NOT APPLE)
|
||||
|
||||
FIND_PACKAGE(ZLIB REQUIRED)
|
||||
|
||||
IF (WITH_OPENCOLLADA)
|
||||
SET(OPENCOLLADA /usr/local/opencollada CACHE FILEPATH "OpenCollada Directory")
|
||||
SET(OPENCOLLADA_LIBPATH ${OPENCOLLADA})
|
||||
SET(OPENCOLLADA_LIB OpenCollada)
|
||||
SET(OPENCOLLADA_INC ${OPENCOLLADA})
|
||||
SET(PCRE /usr CACHE FILEPATH "PCRE Directory")
|
||||
SET(PCRE_LIBPATH ${PCRE}/lib)
|
||||
SET(PCRE_LIB pcre)
|
||||
SET(EXPAT /usr CACHE FILEPATH "Expat Directory")
|
||||
SET(EXPAT_LIBPATH ${EXPAT}/lib)
|
||||
SET(EXPAT_LIB expat)
|
||||
ENDIF (WITH_OPENCOLLADA)
|
||||
|
||||
|
||||
# Could use ${X11_Xinput_LIB} ${X11_X11_LIB} too
|
||||
SET(LLIBS "-lXi -lutil -lc -lm -lpthread -lstdc++ -lX11")
|
||||
|
||||
@ -232,7 +243,7 @@ IF(UNIX AND NOT APPLE)
|
||||
ENDIF(WITH_OPENMP)
|
||||
|
||||
|
||||
SET(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing -DXP_UNIX -Wno-char-subscripts")
|
||||
SET(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing -Wno-char-subscripts")
|
||||
|
||||
SET(PLATFORM_LINKFLAGS "-pthread")
|
||||
|
||||
@ -400,6 +411,16 @@ IF(WIN32)
|
||||
|
||||
SET(WINTAB_INC ${LIBDIR}/wintab/include)
|
||||
|
||||
SET(OPENCOLLADA ${LIBDIR}/opencollada)
|
||||
SET(OPENCOLLADA_INC ${OPENCOLLADA}/include)
|
||||
SET(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
|
||||
SET(OPENCOLLADA_LIB OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils OpenCOLLADAStreamWriter MathMLSolver GeneratedSaxParser UTF xml2 )
|
||||
#pcre is bundled with openCollada
|
||||
#SET(PCRE ${LIBDIR}/pcre)
|
||||
#SET(PCRE_LIBPATH ${PCRE}/lib)
|
||||
SET(PCRE_LIB pcre)
|
||||
|
||||
|
||||
IF(CMAKE_CL_64)
|
||||
SET(PLATFORM_LINKFLAGS "/MACHINE:X64 /NODEFAULTLIB:libc.lib;MSVCRT.lib ")
|
||||
ELSE(CMAKE_CL_64)
|
||||
@ -511,7 +532,15 @@ IF(APPLE)
|
||||
|
||||
IF (WITH_COCOA)
|
||||
SET(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing -DGHOST_COCOA")
|
||||
SET(PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework QuickTime")
|
||||
SET(PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio")
|
||||
IF(USE_QTKIT)
|
||||
SET(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -DUSE_QTKIT")
|
||||
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QTKit")
|
||||
ELSE(USE_QTKIT)
|
||||
IF(WITH_QUICKTIME)
|
||||
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime")
|
||||
ENDIF(WITH_QUICKTIME)
|
||||
ENDIF(USE_QTKIT)
|
||||
ELSE (WITH_COCOA)
|
||||
SET(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
|
||||
SET(PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Carbon -framework AGL -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework QuickTime")
|
||||
@ -532,10 +561,10 @@ IF(APPLE)
|
||||
#SET(PCRE ${LIBDIR}/pcre)
|
||||
#SET(PCRE_LIBPATH ${PCRE}/lib)
|
||||
SET(PCRE_LIB pcre)
|
||||
#native OSX libxml2 is used
|
||||
#libxml2 is used
|
||||
#SET(EXPAT ${LIBDIR}/expat)
|
||||
#SET(EXPAT_LIBPATH ${EXPAT}/lib)
|
||||
#SET(EXPAT_LIB expat)
|
||||
SET(EXPAT_LIB)
|
||||
ENDIF (WITH_OPENCOLLADA)
|
||||
|
||||
SET(SDL ${LIBDIR}/sdl)
|
||||
@ -565,6 +594,10 @@ IF(APPLE)
|
||||
SET(CMAKE_C_FLAGS_RELEASE "-O3 -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller")
|
||||
ENDIF(CMAKE_OSX_ARCHITECTURES MATCHES "i386")
|
||||
|
||||
# Better warnings
|
||||
SET(C_WARNINGS "-Wall -Wno-char-subscripts -Wpointer-arith -Wcast-align -Wdeclaration-after-statement")
|
||||
SET(CXX_WARNINGS "-Wall -Wno-invalid-offsetof -Wno-sign-compare")
|
||||
|
||||
ENDIF(APPLE)
|
||||
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
|
@ -225,6 +225,11 @@ if env['WITH_GHOST_COCOA'] == True:
|
||||
env.Append(CXXFLAGS=['-DGHOST_COCOA'])
|
||||
env.Append(CPPFLAGS=['-DGHOST_COCOA'])
|
||||
|
||||
if env['USE_QTKIT'] == True:
|
||||
env.Append(CFLAGS=['-DUSE_QTKIT'])
|
||||
env.Append(CXXFLAGS=['-DUSE_QTKIT'])
|
||||
env.Append(CPPFLAGS=['-DUSE_QTKIT'])
|
||||
|
||||
#check for additional debug libnames
|
||||
|
||||
if env.has_key('BF_DEBUG_LIBS'):
|
||||
|
@ -13,7 +13,6 @@ USE_SDK=True
|
||||
#############################################################################
|
||||
################### Cocoa & architecture settings ##################
|
||||
#############################################################################
|
||||
|
||||
WITH_GHOST_COCOA=True
|
||||
MACOSX_ARCHITECTURE = 'i386' # valid archs: ppc, i386, ppc64, x86_64
|
||||
|
||||
@ -31,30 +30,36 @@ elif cmd_res[0]=='9':
|
||||
elif cmd_res[0]=='10':
|
||||
MAC_CUR_VER='10.6'
|
||||
|
||||
if MACOSX_ARCHITECTURE == 'ppc':
|
||||
LCGDIR = '#../lib/darwin-6.1-powerpc'
|
||||
else :
|
||||
LCGDIR = '#../lib/darwin-9.x.universal'
|
||||
LIBDIR = '${LCGDIR}'
|
||||
|
||||
BF_PYTHON_VERSION = '3.1'
|
||||
|
||||
if MACOSX_ARCHITECTURE == 'ppc' and BF_PYTHON_VERSION == '2.3':
|
||||
if MACOSX_ARCHITECTURE == 'x86_64' or MACOSX_ARCHITECTURE == 'ppc64':
|
||||
USE_QTKIT=True # Carbon quicktime is not available for 64bit
|
||||
|
||||
|
||||
# Default target OSX settings per architecture
|
||||
# Can be customized
|
||||
|
||||
if MACOSX_ARCHITECTURE == 'ppc':
|
||||
MAC_MIN_VERS = '10.3'
|
||||
MACOSX_SDK='/Developer/SDKs/MacOSX10.3.9.sdk'
|
||||
CC = 'gcc'
|
||||
CXX = 'g++'
|
||||
elif MACOSX_ARCHITECTURE == 'i386' or MACOSX_ARCHITECTURE == 'ppc':
|
||||
LCGDIR = '#../lib/darwin-6.1-powerpc'
|
||||
CC = 'gcc-3.3'
|
||||
CXX = 'g++-3.3'
|
||||
elif MACOSX_ARCHITECTURE == 'i386':
|
||||
MAC_MIN_VERS = '10.4'
|
||||
MACOSX_SDK='/Developer/SDKs/MacOSX10.4u.sdk'
|
||||
LCGDIR = '#../lib/darwin-8.x.i386'
|
||||
CC = 'gcc-4.0'
|
||||
CXX = 'g++-4.0'
|
||||
else :
|
||||
MAC_MIN_VERS = '10.5'
|
||||
MACOSX_SDK='/Developer/SDKs/MacOSX10.5.sdk'
|
||||
LCGDIR = '#../lib/darwin-9.x.universal'
|
||||
CC = 'gcc-4.2'
|
||||
CXX = 'g++-4.2'
|
||||
|
||||
LIBDIR = '${LCGDIR}'
|
||||
|
||||
#############################################################################
|
||||
################### Dependency settings ##################
|
||||
#############################################################################
|
||||
@ -229,10 +234,7 @@ BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
|
||||
BF_FREETYPE_LIB = 'freetype'
|
||||
BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
|
||||
|
||||
if MACOSX_ARCHITECTURE == 'x86_64' or MACOSX_ARCHITECTURE == 'ppc64':
|
||||
WITH_BF_QUICKTIME = False # -DWITH_QUICKTIME ( disable for 64bit atm )
|
||||
else:
|
||||
WITH_BF_QUICKTIME = True
|
||||
WITH_BF_QUICKTIME = True
|
||||
|
||||
WITH_BF_ICONV = True
|
||||
BF_ICONV = '/usr'
|
||||
@ -285,7 +287,10 @@ else:
|
||||
PLATFORM_LINKFLAGS = ['-fexceptions','-framework','CoreServices','-framework','Foundation','-framework','IOKit','-framework','AppKit','-framework','Carbon','-framework','AGL','-framework','AudioUnit','-framework','AudioToolbox','-framework','CoreAudio','-framework','OpenAL']+ARCH_FLAGS
|
||||
|
||||
if WITH_BF_QUICKTIME == True:
|
||||
PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS+['-framework','QuickTime']
|
||||
if USE_QTKIT == True:
|
||||
PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS+['-framework','QTKit']
|
||||
else:
|
||||
PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS+['-framework','QuickTime']
|
||||
|
||||
#note to build succesfully on 10.3.9 SDK you need to patch 10.3.9 by adding the SystemStubs.a lib from 10.4
|
||||
LLIBS = ['stdc++', 'SystemStubs']
|
||||
|
@ -161,7 +161,7 @@ CXX = 'CC'
|
||||
|
||||
CCFLAGS = ['-pipe','-fPIC', '-n32']
|
||||
|
||||
CPPFLAGS = ['-DXP_UNIX']
|
||||
CPPFLAGS = []
|
||||
CXXFLAGS = ['-pipe','-fPIC', '-n32']
|
||||
REL_CFLAGS = ['-O2']
|
||||
REL_CCFLAGS = ['-O2']
|
||||
|
@ -165,6 +165,8 @@ BF_EXPAT = '/usr'
|
||||
BF_EXPAT_LIB = 'expat'
|
||||
BF_EXPAT_LIBPATH = '/usr/lib'
|
||||
|
||||
WITH_BF_OPENMP = True
|
||||
|
||||
##
|
||||
CC = 'gcc'
|
||||
CXX = 'g++'
|
||||
@ -173,7 +175,7 @@ CXX = 'g++'
|
||||
|
||||
CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
|
||||
|
||||
CPPFLAGS = ['-DXP_UNIX']
|
||||
CPPFLAGS = []
|
||||
CXXFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
|
||||
REL_CFLAGS = ['-O2']
|
||||
REL_CCFLAGS = ['-O2']
|
||||
|
@ -119,7 +119,7 @@ CXX = 'i586-mingw32msvc-g++'
|
||||
|
||||
CCFLAGS = [ '-pipe', '-funsigned-char', '-fno-strict-aliasing' ]
|
||||
|
||||
CPPFLAGS = [ '-DXP_UNIX', '-DWIN32', '-DFREE_WINDOWS' ]
|
||||
CPPFLAGS = ['-DWIN32', '-DFREE_WINDOWS']
|
||||
CXXFLAGS = ['-pipe', '-mwindows', '-funsigned-char', '-fno-strict-aliasing' ]
|
||||
REL_CFLAGS = [ '-O2' ]
|
||||
REL_CCFLAGS = [ '-O2' ]
|
||||
|
@ -136,7 +136,7 @@ CXX = 'g++'
|
||||
|
||||
CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
|
||||
|
||||
CPPFLAGS = ['-DXP_UNIX', '-DSUN_OGL_NO_VERTEX_MACROS']
|
||||
CPPFLAGS = ['-DSUN_OGL_NO_VERTEX_MACROS']
|
||||
CXXFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
|
||||
REL_CFLAGS = ['-O2']
|
||||
REL_CCFLAGS = ['-O2']
|
||||
|
@ -136,7 +136,7 @@ CXX = 'g++'
|
||||
|
||||
CCFLAGS = [ '-pipe', '-funsigned-char', '-fno-strict-aliasing' ]
|
||||
|
||||
CPPFLAGS = [ '-DXP_UNIX', '-DWIN32', '-DFREE_WINDOWS' ]
|
||||
CPPFLAGS = ['-DWIN32', '-DFREE_WINDOWS']
|
||||
CXXFLAGS = ['-pipe', '-mwindows', '-funsigned-char', '-fno-strict-aliasing' ]
|
||||
REL_CFLAGS = [ '-O2' ]
|
||||
REL_CCFLAGS = [ '-O2' ]
|
||||
|
2
extern/glew/CMakeLists.txt
vendored
2
extern/glew/CMakeLists.txt
vendored
@ -34,5 +34,7 @@ SET(SRC
|
||||
src/glew.c
|
||||
)
|
||||
|
||||
ADD_DEFINITIONS(-DGLEW_STATIC)
|
||||
|
||||
BLENDERLIB(extern_glew "${SRC}" "${INC}")
|
||||
|
||||
|
2
extern/glew/SConscript
vendored
2
extern/glew/SConscript
vendored
@ -6,7 +6,7 @@ Import('env')
|
||||
|
||||
sources = ['src/glew.c']
|
||||
|
||||
defs = ''
|
||||
defs = 'GLEW_STATIC'
|
||||
incs = 'include'
|
||||
|
||||
env.BlenderLib ( 'extern_glew', sources, Split(incs), Split(defs), libtype=['extern','player'], priority=[50,230])
|
||||
|
2580
extern/glew/include/GL/glew.h
vendored
2580
extern/glew/include/GL/glew.h
vendored
File diff suppressed because it is too large
Load Diff
377
extern/glew/include/GL/glxew.h
vendored
377
extern/glew/include/GL/glxew.h
vendored
@ -1,7 +1,7 @@
|
||||
/*
|
||||
** The OpenGL Extension Wrangler Library
|
||||
** Copyright (C) 2002-2006, Milan Ikits <milan ikits[]ieee org>
|
||||
** Copyright (C) 2002-2006, Marcelo E. Magallon <mmagallo[]debian org>
|
||||
** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||
** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||
** Copyright (C) 2002, Lev Povalahev
|
||||
** All rights reserved.
|
||||
**
|
||||
@ -30,22 +30,50 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
** The contents of this file are subject to the GLX Public License Version 1.0
|
||||
** (the "License"). You may not use this file except in compliance with the
|
||||
** License. You may obtain a copy of the License at Silicon Graphics, Inc.,
|
||||
** attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
|
||||
** or at http://www.sgi.com/software/opensource/glx/license.html.
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 7.0
|
||||
*
|
||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (c) 2007 The Khronos Group Inc.
|
||||
**
|
||||
** Software distributed under the License is distributed on an "AS IS"
|
||||
** basis. ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY
|
||||
** IMPLIED WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
|
||||
** PURPOSE OR OF NON- INFRINGEMENT. See the License for the specific
|
||||
** language governing rights and limitations under the License.
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** The Original Software is GLX version 1.2 source code, released February,
|
||||
** 1999. The developer of the Original Software is Silicon Graphics, Inc.
|
||||
** Those portions of the Subject Software created by Silicon Graphics, Inc.
|
||||
** are Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
|
||||
#ifndef __glxew_h__
|
||||
@ -55,9 +83,13 @@
|
||||
#ifdef __glxext_h_
|
||||
#error glxext.h included before glxew.h
|
||||
#endif
|
||||
#ifdef GLX_H
|
||||
#error glx.h included before glxew.h
|
||||
#endif
|
||||
|
||||
#define __glxext_h_
|
||||
#define __GLX_glx_h__
|
||||
#define GLX_H
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
@ -100,7 +132,13 @@ extern "C" {
|
||||
|
||||
typedef XID GLXDrawable;
|
||||
typedef XID GLXPixmap;
|
||||
#ifdef __sun
|
||||
typedef struct __glXContextRec *GLXContext;
|
||||
#else
|
||||
typedef struct __GLXcontextRec *GLXContext;
|
||||
#endif
|
||||
|
||||
typedef unsigned int GLXVideoDeviceNV;
|
||||
|
||||
extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase);
|
||||
extern Bool glXQueryVersion (Display *dpy, int *major, int *minor);
|
||||
@ -111,7 +149,7 @@ extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix);
|
||||
extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
|
||||
extern void glXDestroyContext (Display *dpy, GLXContext ctx);
|
||||
extern Bool glXIsDirect (Display *dpy, GLXContext ctx);
|
||||
extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLuint mask);
|
||||
extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask);
|
||||
extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx);
|
||||
extern GLXContext glXGetCurrentContext (void);
|
||||
extern GLXDrawable glXGetCurrentDrawable (void);
|
||||
@ -220,8 +258,24 @@ typedef XID GLXFBConfigID;
|
||||
typedef XID GLXWindow;
|
||||
typedef XID GLXPbuffer;
|
||||
typedef struct __GLXFBConfigRec *GLXFBConfig;
|
||||
typedef struct { int event_type; int draw_type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; unsigned int buffer_mask; unsigned int aux_buffer; int x, y; int width, height; int count; } GLXPbufferClobberEvent;
|
||||
typedef union __GLXEvent { GLXPbufferClobberEvent glxpbufferclobber; long pad[24]; } GLXEvent;
|
||||
|
||||
typedef struct {
|
||||
int event_type;
|
||||
int draw_type;
|
||||
unsigned long serial;
|
||||
Bool send_event;
|
||||
Display *display;
|
||||
GLXDrawable drawable;
|
||||
unsigned int buffer_mask;
|
||||
unsigned int aux_buffer;
|
||||
int x, y;
|
||||
int width, height;
|
||||
int count;
|
||||
} GLXPbufferClobberEvent;
|
||||
typedef union __GLXEvent {
|
||||
GLXPbufferClobberEvent glxpbufferclobber;
|
||||
long pad[24];
|
||||
} GLXEvent;
|
||||
|
||||
typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
|
||||
typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
|
||||
@ -289,6 +343,25 @@ extern void ( * glXGetProcAddress (const GLubyte *procName)) (void);
|
||||
|
||||
#endif /* GLX_3DFX_multisample */
|
||||
|
||||
/* ------------------------- GLX_ARB_create_context ------------------------ */
|
||||
|
||||
#ifndef GLX_ARB_create_context
|
||||
#define GLX_ARB_create_context 1
|
||||
|
||||
#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
|
||||
#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
|
||||
#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
|
||||
#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
|
||||
#define GLX_CONTEXT_FLAGS_ARB 0x2094
|
||||
|
||||
typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
|
||||
|
||||
#define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB)
|
||||
|
||||
#define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context)
|
||||
|
||||
#endif /* GLX_ARB_create_context */
|
||||
|
||||
/* ------------------------- GLX_ARB_fbconfig_float ------------------------ */
|
||||
|
||||
#ifndef GLX_ARB_fbconfig_float
|
||||
@ -301,6 +374,17 @@ extern void ( * glXGetProcAddress (const GLubyte *procName)) (void);
|
||||
|
||||
#endif /* GLX_ARB_fbconfig_float */
|
||||
|
||||
/* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */
|
||||
|
||||
#ifndef GLX_ARB_framebuffer_sRGB
|
||||
#define GLX_ARB_framebuffer_sRGB 1
|
||||
|
||||
#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2
|
||||
|
||||
#define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB)
|
||||
|
||||
#endif /* GLX_ARB_framebuffer_sRGB */
|
||||
|
||||
/* ------------------------ GLX_ARB_get_proc_address ----------------------- */
|
||||
|
||||
#ifndef GLX_ARB_get_proc_address
|
||||
@ -388,6 +472,29 @@ typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, i
|
||||
|
||||
#endif /* GLX_ATI_render_texture */
|
||||
|
||||
/* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */
|
||||
|
||||
#ifndef GLX_EXT_fbconfig_packed_float
|
||||
#define GLX_EXT_fbconfig_packed_float 1
|
||||
|
||||
#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
|
||||
#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
|
||||
|
||||
#define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float)
|
||||
|
||||
#endif /* GLX_EXT_fbconfig_packed_float */
|
||||
|
||||
/* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */
|
||||
|
||||
#ifndef GLX_EXT_framebuffer_sRGB
|
||||
#define GLX_EXT_framebuffer_sRGB 1
|
||||
|
||||
#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
|
||||
|
||||
#define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB)
|
||||
|
||||
#endif /* GLX_EXT_framebuffer_sRGB */
|
||||
|
||||
/* ------------------------- GLX_EXT_import_context ------------------------ */
|
||||
|
||||
#ifndef GLX_EXT_import_context
|
||||
@ -422,6 +529,53 @@ typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context
|
||||
|
||||
#endif /* GLX_EXT_scene_marker */
|
||||
|
||||
/* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */
|
||||
|
||||
#ifndef GLX_EXT_texture_from_pixmap
|
||||
#define GLX_EXT_texture_from_pixmap 1
|
||||
|
||||
#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
|
||||
#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
|
||||
#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
|
||||
#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
|
||||
#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
|
||||
#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
|
||||
#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
|
||||
#define GLX_Y_INVERTED_EXT 0x20D4
|
||||
#define GLX_TEXTURE_FORMAT_EXT 0x20D5
|
||||
#define GLX_TEXTURE_TARGET_EXT 0x20D6
|
||||
#define GLX_MIPMAP_TEXTURE_EXT 0x20D7
|
||||
#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
|
||||
#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
|
||||
#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
|
||||
#define GLX_TEXTURE_1D_EXT 0x20DB
|
||||
#define GLX_TEXTURE_2D_EXT 0x20DC
|
||||
#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
|
||||
#define GLX_FRONT_LEFT_EXT 0x20DE
|
||||
#define GLX_FRONT_RIGHT_EXT 0x20DF
|
||||
#define GLX_BACK_LEFT_EXT 0x20E0
|
||||
#define GLX_BACK_RIGHT_EXT 0x20E1
|
||||
#define GLX_AUX0_EXT 0x20E2
|
||||
#define GLX_AUX1_EXT 0x20E3
|
||||
#define GLX_AUX2_EXT 0x20E4
|
||||
#define GLX_AUX3_EXT 0x20E5
|
||||
#define GLX_AUX4_EXT 0x20E6
|
||||
#define GLX_AUX5_EXT 0x20E7
|
||||
#define GLX_AUX6_EXT 0x20E8
|
||||
#define GLX_AUX7_EXT 0x20E9
|
||||
#define GLX_AUX8_EXT 0x20EA
|
||||
#define GLX_AUX9_EXT 0x20EB
|
||||
|
||||
typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list);
|
||||
typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer);
|
||||
|
||||
#define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT)
|
||||
#define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT)
|
||||
|
||||
#define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap)
|
||||
|
||||
#endif /* GLX_EXT_texture_from_pixmap */
|
||||
|
||||
/* -------------------------- GLX_EXT_visual_info -------------------------- */
|
||||
|
||||
#ifndef GLX_EXT_visual_info
|
||||
@ -540,6 +694,46 @@ typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode);
|
||||
|
||||
#endif /* GLX_NV_float_buffer */
|
||||
|
||||
/* -------------------------- GLX_NV_present_video ------------------------- */
|
||||
|
||||
#ifndef GLX_NV_present_video
|
||||
#define GLX_NV_present_video 1
|
||||
|
||||
#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0
|
||||
|
||||
typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list);
|
||||
typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements);
|
||||
|
||||
#define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV)
|
||||
#define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV)
|
||||
|
||||
#define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video)
|
||||
|
||||
#endif /* GLX_NV_present_video */
|
||||
|
||||
/* --------------------------- GLX_NV_swap_group --------------------------- */
|
||||
|
||||
#ifndef GLX_NV_swap_group
|
||||
#define GLX_NV_swap_group 1
|
||||
|
||||
typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier);
|
||||
typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group);
|
||||
typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count);
|
||||
typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers);
|
||||
typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier);
|
||||
typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen);
|
||||
|
||||
#define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV)
|
||||
#define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV)
|
||||
#define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV)
|
||||
#define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV)
|
||||
#define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV)
|
||||
#define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV)
|
||||
|
||||
#define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group)
|
||||
|
||||
#endif /* GLX_NV_swap_group */
|
||||
|
||||
/* ----------------------- GLX_NV_vertex_array_range ----------------------- */
|
||||
|
||||
#ifndef GLX_NV_vertex_array_range
|
||||
@ -555,6 +749,40 @@ typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer);
|
||||
|
||||
#endif /* GLX_NV_vertex_array_range */
|
||||
|
||||
/* -------------------------- GLX_NV_video_output -------------------------- */
|
||||
|
||||
#ifndef GLX_NV_video_output
|
||||
#define GLX_NV_video_output 1
|
||||
|
||||
#define GLX_VIDEO_OUT_COLOR_NV 0x20C3
|
||||
#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
|
||||
#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5
|
||||
#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
|
||||
#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
|
||||
#define GLX_VIDEO_OUT_FRAME_NV 0x20C8
|
||||
#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
|
||||
#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
|
||||
#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
|
||||
#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
|
||||
|
||||
typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
|
||||
typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice);
|
||||
typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
|
||||
typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice);
|
||||
typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf);
|
||||
typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
|
||||
|
||||
#define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV)
|
||||
#define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV)
|
||||
#define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV)
|
||||
#define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV)
|
||||
#define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV)
|
||||
#define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV)
|
||||
|
||||
#define GLXEW_NV_video_output GLXEW_GET_VAR(__GLXEW_NV_video_output)
|
||||
|
||||
#endif /* GLX_NV_video_output */
|
||||
|
||||
/* -------------------------- GLX_OML_swap_method -------------------------- */
|
||||
|
||||
#ifndef GLX_OML_swap_method
|
||||
@ -683,6 +911,73 @@ typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLX
|
||||
|
||||
#endif /* GLX_SGIX_fbconfig */
|
||||
|
||||
/* --------------------------- GLX_SGIX_hyperpipe -------------------------- */
|
||||
|
||||
#ifndef GLX_SGIX_hyperpipe
|
||||
#define GLX_SGIX_hyperpipe 1
|
||||
|
||||
#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
|
||||
#define GLX_PIPE_RECT_SGIX 0x00000001
|
||||
#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
|
||||
#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
|
||||
#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003
|
||||
#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
|
||||
#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
|
||||
#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
|
||||
#define GLX_BAD_HYPERPIPE_SGIX 92
|
||||
#define GLX_HYPERPIPE_ID_SGIX 0x8030
|
||||
|
||||
typedef struct {
|
||||
char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
|
||||
int networkId;
|
||||
} GLXHyperpipeNetworkSGIX;
|
||||
typedef struct {
|
||||
char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
|
||||
int XOrigin;
|
||||
int YOrigin;
|
||||
int maxHeight;
|
||||
int maxWidth;
|
||||
} GLXPipeRectLimits;
|
||||
typedef struct {
|
||||
char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
|
||||
int channel;
|
||||
unsigned int participationType;
|
||||
int timeSlice;
|
||||
} GLXHyperpipeConfigSGIX;
|
||||
typedef struct {
|
||||
char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
|
||||
int srcXOrigin;
|
||||
int srcYOrigin;
|
||||
int srcWidth;
|
||||
int srcHeight;
|
||||
int destXOrigin;
|
||||
int destYOrigin;
|
||||
int destWidth;
|
||||
int destHeight;
|
||||
} GLXPipeRect;
|
||||
|
||||
typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId);
|
||||
typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId);
|
||||
typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList);
|
||||
typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId);
|
||||
typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList);
|
||||
typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList);
|
||||
typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes);
|
||||
typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes);
|
||||
|
||||
#define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX)
|
||||
#define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX)
|
||||
#define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX)
|
||||
#define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX)
|
||||
#define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX)
|
||||
#define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX)
|
||||
#define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX)
|
||||
#define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX)
|
||||
|
||||
#define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe)
|
||||
|
||||
#endif /* GLX_SGIX_hyperpipe */
|
||||
|
||||
/* ---------------------------- GLX_SGIX_pbuffer --------------------------- */
|
||||
|
||||
#ifndef GLX_SGIX_pbuffer
|
||||
@ -911,6 +1206,8 @@ extern PFNGLXQUERYCONTEXTPROC __glewXQueryContext;
|
||||
extern PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable;
|
||||
extern PFNGLXSELECTEVENTPROC __glewXSelectEvent;
|
||||
|
||||
extern PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB;
|
||||
|
||||
extern PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI;
|
||||
extern PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI;
|
||||
extern PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI;
|
||||
@ -920,6 +1217,9 @@ extern PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT;
|
||||
extern PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT;
|
||||
extern PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT;
|
||||
|
||||
extern PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT;
|
||||
extern PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT;
|
||||
|
||||
extern PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA;
|
||||
|
||||
extern PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA;
|
||||
@ -930,9 +1230,26 @@ extern PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA;
|
||||
|
||||
extern PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA;
|
||||
|
||||
extern PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV;
|
||||
extern PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV;
|
||||
|
||||
extern PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV;
|
||||
extern PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV;
|
||||
extern PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV;
|
||||
extern PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV;
|
||||
extern PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV;
|
||||
extern PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV;
|
||||
|
||||
extern PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV;
|
||||
extern PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV;
|
||||
|
||||
extern PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV;
|
||||
extern PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV;
|
||||
extern PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV;
|
||||
extern PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV;
|
||||
extern PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV;
|
||||
extern PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV;
|
||||
|
||||
#ifdef GLX_OML_sync_control
|
||||
extern PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML;
|
||||
extern PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML;
|
||||
@ -948,6 +1265,15 @@ extern PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX;
|
||||
extern PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX;
|
||||
extern PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX;
|
||||
|
||||
extern PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX;
|
||||
extern PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX;
|
||||
extern PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX;
|
||||
extern PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX;
|
||||
extern PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX;
|
||||
extern PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX;
|
||||
extern PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX;
|
||||
extern PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX;
|
||||
|
||||
extern PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX;
|
||||
extern PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX;
|
||||
extern PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX;
|
||||
@ -991,13 +1317,18 @@ GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_3;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_4;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_3DFX_multisample;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_ARB_fbconfig_float;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_ARB_get_proc_address;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_ARB_multisample;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_ATI_pixel_format_float;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_ATI_render_texture;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_EXT_import_context;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_EXT_scene_marker;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_info;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_rating;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_MESA_agp_offset;
|
||||
@ -1006,7 +1337,10 @@ GLXEW_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_MESA_release_buffers;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_NV_float_buffer;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_NV_present_video;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_NV_swap_group;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_NV_vertex_array_range;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_NV_video_output;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_OML_swap_method;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_OML_sync_control;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_SGIS_blended_overlay;
|
||||
@ -1014,6 +1348,7 @@ GLXEW_EXPORT GLboolean __GLXEW_SGIS_color_range;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_SGIS_multisample;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_SGIS_shared_multisample;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_SGIX_fbconfig;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_SGIX_hyperpipe;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_SGIX_pbuffer;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_barrier;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_group;
|
||||
@ -1041,12 +1376,12 @@ extern GLboolean glxewContextIsSupported (GLXEWContext* ctx, const char* name);
|
||||
#define glxewInit() glxewContextInit(glxewGetContext())
|
||||
#define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x)
|
||||
|
||||
#define GLXEW_GET_VAR(x) glxewGetContext()->x
|
||||
#define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x))
|
||||
#define GLXEW_GET_FUN(x) x
|
||||
|
||||
#else /* GLEW_MX */
|
||||
|
||||
#define GLXEW_GET_VAR(x) x
|
||||
#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
|
||||
#define GLXEW_GET_FUN(x) x
|
||||
|
||||
extern GLboolean glxewIsSupported (const char* name);
|
||||
|
239
extern/glew/include/GL/wglew.h
vendored
239
extern/glew/include/GL/wglew.h
vendored
@ -1,7 +1,7 @@
|
||||
/*
|
||||
** The OpenGL Extension Wrangler Library
|
||||
** Copyright (C) 2002-2006, Milan Ikits <milan ikits[]ieee org>
|
||||
** Copyright (C) 2002-2006, Marcelo E. Magallon <mmagallo[]debian org>
|
||||
** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||
** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
|
||||
** Copyright (C) 2002, Lev Povalahev
|
||||
** All rights reserved.
|
||||
**
|
||||
@ -29,6 +29,29 @@
|
||||
** THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (c) 2007 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
|
||||
#ifndef __wglew_h__
|
||||
#define __wglew_h__
|
||||
#define __WGLEW_H__
|
||||
@ -118,6 +141,26 @@ typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, in
|
||||
|
||||
#endif /* WGL_ARB_buffer_region */
|
||||
|
||||
/* ------------------------- WGL_ARB_create_context ------------------------ */
|
||||
|
||||
#ifndef WGL_ARB_create_context
|
||||
#define WGL_ARB_create_context 1
|
||||
|
||||
#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001
|
||||
#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
|
||||
#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
|
||||
#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
|
||||
#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
|
||||
#define WGL_CONTEXT_FLAGS_ARB 0x2094
|
||||
|
||||
typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList);
|
||||
|
||||
#define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB)
|
||||
|
||||
#define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context)
|
||||
|
||||
#endif /* WGL_ARB_create_context */
|
||||
|
||||
/* ----------------------- WGL_ARB_extensions_string ----------------------- */
|
||||
|
||||
#ifndef WGL_ARB_extensions_string
|
||||
@ -131,11 +174,25 @@ typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
|
||||
|
||||
#endif /* WGL_ARB_extensions_string */
|
||||
|
||||
/* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */
|
||||
|
||||
#ifndef WGL_ARB_framebuffer_sRGB
|
||||
#define WGL_ARB_framebuffer_sRGB 1
|
||||
|
||||
#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
|
||||
|
||||
#define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB)
|
||||
|
||||
#endif /* WGL_ARB_framebuffer_sRGB */
|
||||
|
||||
/* ----------------------- WGL_ARB_make_current_read ----------------------- */
|
||||
|
||||
#ifndef WGL_ARB_make_current_read
|
||||
#define WGL_ARB_make_current_read 1
|
||||
|
||||
#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
|
||||
#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
|
||||
|
||||
typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID);
|
||||
typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
|
||||
|
||||
@ -386,11 +443,24 @@ typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
|
||||
|
||||
#endif /* WGL_EXT_extensions_string */
|
||||
|
||||
/* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */
|
||||
|
||||
#ifndef WGL_EXT_framebuffer_sRGB
|
||||
#define WGL_EXT_framebuffer_sRGB 1
|
||||
|
||||
#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
|
||||
|
||||
#define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB)
|
||||
|
||||
#endif /* WGL_EXT_framebuffer_sRGB */
|
||||
|
||||
/* ----------------------- WGL_EXT_make_current_read ----------------------- */
|
||||
|
||||
#ifndef WGL_EXT_make_current_read
|
||||
#define WGL_EXT_make_current_read 1
|
||||
|
||||
#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
|
||||
|
||||
typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID);
|
||||
typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
|
||||
|
||||
@ -509,6 +579,17 @@ typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixel
|
||||
|
||||
#endif /* WGL_EXT_pixel_format */
|
||||
|
||||
/* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */
|
||||
|
||||
#ifndef WGL_EXT_pixel_format_packed_float
|
||||
#define WGL_EXT_pixel_format_packed_float 1
|
||||
|
||||
#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
|
||||
|
||||
#define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float)
|
||||
|
||||
#endif /* WGL_EXT_pixel_format_packed_float */
|
||||
|
||||
/* -------------------------- WGL_EXT_swap_control ------------------------- */
|
||||
|
||||
#ifndef WGL_EXT_swap_control
|
||||
@ -690,6 +771,60 @@ typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWO
|
||||
|
||||
#endif /* WGL_NV_float_buffer */
|
||||
|
||||
/* -------------------------- WGL_NV_gpu_affinity -------------------------- */
|
||||
|
||||
#ifndef WGL_NV_gpu_affinity
|
||||
#define WGL_NV_gpu_affinity 1
|
||||
|
||||
#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
|
||||
#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
|
||||
|
||||
DECLARE_HANDLE(HGPUNV);
|
||||
typedef struct _GPU_DEVICE {
|
||||
DWORD cb;
|
||||
CHAR DeviceName[32];
|
||||
CHAR DeviceString[128];
|
||||
DWORD Flags;
|
||||
RECT rcVirtualScreen;
|
||||
} GPU_DEVICE, *PGPU_DEVICE;
|
||||
|
||||
typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
|
||||
typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
|
||||
typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
|
||||
typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
|
||||
typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
|
||||
|
||||
#define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV)
|
||||
#define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV)
|
||||
#define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV)
|
||||
#define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV)
|
||||
#define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV)
|
||||
|
||||
#define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity)
|
||||
|
||||
#endif /* WGL_NV_gpu_affinity */
|
||||
|
||||
/* -------------------------- WGL_NV_present_video ------------------------- */
|
||||
|
||||
#ifndef WGL_NV_present_video
|
||||
#define WGL_NV_present_video 1
|
||||
|
||||
#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
|
||||
|
||||
DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
|
||||
|
||||
typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList);
|
||||
typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList);
|
||||
typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue);
|
||||
|
||||
#define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV)
|
||||
#define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV)
|
||||
#define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV)
|
||||
|
||||
#define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video)
|
||||
|
||||
#endif /* WGL_NV_present_video */
|
||||
|
||||
/* ---------------------- WGL_NV_render_depth_texture ---------------------- */
|
||||
|
||||
#ifndef WGL_NV_render_depth_texture
|
||||
@ -719,6 +854,29 @@ typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWO
|
||||
|
||||
#endif /* WGL_NV_render_texture_rectangle */
|
||||
|
||||
/* --------------------------- WGL_NV_swap_group --------------------------- */
|
||||
|
||||
#ifndef WGL_NV_swap_group
|
||||
#define WGL_NV_swap_group 1
|
||||
|
||||
typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
|
||||
typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
|
||||
typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count);
|
||||
typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers);
|
||||
typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group);
|
||||
typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
|
||||
|
||||
#define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV)
|
||||
#define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV)
|
||||
#define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV)
|
||||
#define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV)
|
||||
#define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV)
|
||||
#define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV)
|
||||
|
||||
#define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group)
|
||||
|
||||
#endif /* WGL_NV_swap_group */
|
||||
|
||||
/* ----------------------- WGL_NV_vertex_array_range ----------------------- */
|
||||
|
||||
#ifndef WGL_NV_vertex_array_range
|
||||
@ -734,6 +892,45 @@ typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
|
||||
|
||||
#endif /* WGL_NV_vertex_array_range */
|
||||
|
||||
/* -------------------------- WGL_NV_video_output -------------------------- */
|
||||
|
||||
#ifndef WGL_NV_video_output
|
||||
#define WGL_NV_video_output 1
|
||||
|
||||
#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
|
||||
#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
|
||||
#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
|
||||
#define WGL_VIDEO_OUT_COLOR_NV 0x20C3
|
||||
#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4
|
||||
#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5
|
||||
#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
|
||||
#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
|
||||
#define WGL_VIDEO_OUT_FRAME 0x20C8
|
||||
#define WGL_VIDEO_OUT_FIELD_1 0x20C9
|
||||
#define WGL_VIDEO_OUT_FIELD_2 0x20CA
|
||||
#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
|
||||
#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
|
||||
|
||||
DECLARE_HANDLE(HPVIDEODEV);
|
||||
|
||||
typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
|
||||
typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice);
|
||||
typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
|
||||
typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
|
||||
typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
|
||||
typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock);
|
||||
|
||||
#define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV)
|
||||
#define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV)
|
||||
#define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV)
|
||||
#define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV)
|
||||
#define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV)
|
||||
#define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV)
|
||||
|
||||
#define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output)
|
||||
|
||||
#endif /* WGL_NV_video_output */
|
||||
|
||||
/* -------------------------- WGL_OML_sync_control ------------------------- */
|
||||
|
||||
#ifndef WGL_OML_sync_control
|
||||
@ -777,6 +974,8 @@ WGLEW_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB;
|
||||
WGLEW_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB;
|
||||
WGLEW_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB;
|
||||
|
||||
WGLEW_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB;
|
||||
|
||||
WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB;
|
||||
|
||||
WGLEW_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB;
|
||||
@ -855,9 +1054,33 @@ WGLEW_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D;
|
||||
WGLEW_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D;
|
||||
WGLEW_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D;
|
||||
|
||||
WGLEW_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV;
|
||||
WGLEW_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV;
|
||||
WGLEW_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV;
|
||||
WGLEW_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV;
|
||||
WGLEW_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV;
|
||||
|
||||
WGLEW_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV;
|
||||
WGLEW_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV;
|
||||
WGLEW_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV;
|
||||
|
||||
WGLEW_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV;
|
||||
WGLEW_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV;
|
||||
WGLEW_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV;
|
||||
WGLEW_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV;
|
||||
WGLEW_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV;
|
||||
WGLEW_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV;
|
||||
|
||||
WGLEW_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV;
|
||||
WGLEW_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV;
|
||||
|
||||
WGLEW_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV;
|
||||
WGLEW_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV;
|
||||
WGLEW_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV;
|
||||
WGLEW_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV;
|
||||
WGLEW_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV;
|
||||
WGLEW_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV;
|
||||
|
||||
WGLEW_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML;
|
||||
WGLEW_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML;
|
||||
WGLEW_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML;
|
||||
@ -867,7 +1090,9 @@ WGLEW_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_3DFX_multisample;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_3DL_stereo_control;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_ARB_buffer_region;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_ARB_extensions_string;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_ARB_make_current_read;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_ARB_multisample;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_ARB_pbuffer;
|
||||
@ -879,10 +1104,12 @@ WGLEW_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_EXT_depth_float;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_EXT_display_color_table;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_EXT_extensions_string;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_EXT_make_current_read;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_EXT_multisample;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_EXT_pbuffer;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_EXT_swap_control;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_I3D_digital_video_control;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_I3D_gamma;
|
||||
@ -891,9 +1118,13 @@ WGLEW_EXPORT GLboolean __WGLEW_I3D_image_buffer;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_float_buffer;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_gpu_affinity;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_present_video;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_render_depth_texture;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_swap_group;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_vertex_array_range;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_video_output;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_OML_sync_control;
|
||||
|
||||
#ifdef GLEW_MX
|
||||
@ -911,12 +1142,12 @@ GLEWAPI GLboolean wglewContextIsSupported (WGLEWContext* ctx, const char* name);
|
||||
#define wglewInit() wglewContextInit(wglewGetContext())
|
||||
#define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x)
|
||||
|
||||
#define WGLEW_GET_VAR(x) wglewGetContext()->x
|
||||
#define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x))
|
||||
#define WGLEW_GET_FUN(x) wglewGetContext()->x
|
||||
|
||||
#else /* GLEW_MX */
|
||||
|
||||
#define WGLEW_GET_VAR(x) x
|
||||
#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
|
||||
#define WGLEW_GET_FUN(x) x
|
||||
|
||||
GLEWAPI GLboolean wglewIsSupported (const char* name);
|
||||
|
4
extern/glew/make/msvc_9_0/glew.vcproj
vendored
4
extern/glew/make/msvc_9_0/glew.vcproj
vendored
@ -43,7 +43,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;GLEW_STATIC"
|
||||
MinimalRebuild="false"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@ -115,7 +115,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
|
3520
extern/glew/src/glew.c
vendored
3520
extern/glew/src/glew.c
vendored
File diff suppressed because it is too large
Load Diff
@ -341,6 +341,10 @@
|
||||
RelativePath="..\..\intern\AUD_C-API.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\intern\AUD_C-API.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\intern\AUD_ChannelMapperFactory.cpp"
|
||||
>
|
||||
@ -758,10 +762,6 @@
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="..\..\AUD_C-API.h"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
|
@ -414,7 +414,7 @@ extern GHOST_TSuccess GHOST_GetButtonState(GHOST_SystemHandle systemhandle,
|
||||
/**
|
||||
* Tells if the ongoing drag'n'drop object can be accepted upon mouse drop
|
||||
*/
|
||||
extern void GHOST_setAcceptDragOperation(GHOST_SystemHandle systemhandle, GHOST_TInt8 canAccept);
|
||||
extern void GHOST_setAcceptDragOperation(GHOST_WindowHandle windowhandle, GHOST_TInt8 canAccept);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -369,21 +369,6 @@ public:
|
||||
virtual void putClipboard(GHOST_TInt8 *buffer, bool selection) const = 0;
|
||||
|
||||
|
||||
/***************************************************************************************
|
||||
** Drag'n'drop operations
|
||||
***************************************************************************************/
|
||||
|
||||
/**
|
||||
* Tells if the ongoing drag'n'drop object can be accepted upon mouse drop
|
||||
*/
|
||||
virtual void setAcceptDragOperation(bool canAccept) = 0;
|
||||
|
||||
/**
|
||||
* Returns acceptance of the dropped object
|
||||
* Usually called by the "object dropped" event handling function
|
||||
*/
|
||||
virtual bool canAcceptDragOperation() const = 0;
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Initialize the system.
|
||||
|
@ -148,6 +148,17 @@ public:
|
||||
*/
|
||||
virtual void clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const = 0;
|
||||
|
||||
/**
|
||||
* Tells if the ongoing drag'n'drop object can be accepted upon mouse drop
|
||||
*/
|
||||
virtual void setAcceptDragOperation(bool canAccept) = 0;
|
||||
|
||||
/**
|
||||
* Returns acceptance of the dropped object
|
||||
* Usually called by the "object dropped" event handling function
|
||||
*/
|
||||
virtual bool canAcceptDragOperation() const = 0;
|
||||
|
||||
/**
|
||||
* Returns the state of the window (normal, minimized, maximized).
|
||||
* @return The state of the window.
|
||||
|
@ -404,11 +404,11 @@ GHOST_TSuccess GHOST_GetButtonState(GHOST_SystemHandle systemhandle,
|
||||
}
|
||||
|
||||
|
||||
void GHOST_setAcceptDragOperation(GHOST_SystemHandle systemhandle, GHOST_TInt8 canAccept)
|
||||
void GHOST_setAcceptDragOperation(GHOST_WindowHandle windowhandle, GHOST_TInt8 canAccept)
|
||||
{
|
||||
GHOST_ISystem* system = (GHOST_ISystem*) systemhandle;
|
||||
GHOST_IWindow* window = (GHOST_IWindow*) windowhandle;
|
||||
|
||||
system->setAcceptDragOperation(canAccept);
|
||||
window->setAcceptDragOperation(canAccept);
|
||||
}
|
||||
|
||||
|
||||
|
@ -155,11 +155,11 @@ GHOST_TSuccess GHOST_DisplayManagerCocoa::setCurrentDisplaySetting(GHOST_TUns8 d
|
||||
NULL);*/
|
||||
|
||||
#ifdef GHOST_DEBUG
|
||||
printf("GHOST_DisplayManagerCocoa::setCurrentDisplaySetting(): switching to:\n");
|
||||
/* printf("GHOST_DisplayManagerCocoa::setCurrentDisplaySetting(): switching to:\n");
|
||||
printf(" setting.xPixels=%d\n", getValue(displayModeValues, kCGDisplayWidth));
|
||||
printf(" setting.yPixels=%d\n", getValue(displayModeValues, kCGDisplayHeight));
|
||||
printf(" setting.bpp=%d\n", getValue(displayModeValues, kCGDisplayBitsPerPixel));
|
||||
printf(" setting.frequency=%d\n", getValue(displayModeValues, kCGDisplayRefreshRate));
|
||||
printf(" setting.frequency=%d\n", getValue(displayModeValues, kCGDisplayRefreshRate)); */
|
||||
#endif // GHOST_DEBUG
|
||||
|
||||
//CGDisplayErr err = ::CGDisplaySwitchToMode(m_displayIDs[display], displayModeValues);
|
||||
|
@ -50,8 +50,7 @@
|
||||
* <li> Outside of the normal sequence, dropped data can be sent (GHOST_kEventDraggingDropOnIcon). This can happen when the user drops an object
|
||||
* on the application icon. (Also used in OSX to pass the filename of the document the user doubled-clicked in the finder)
|
||||
*
|
||||
* <br><br>Note that the event handler is responsible for freeing the received data.
|
||||
* <br>And the mouse positions are given in Blender coordinates (y=0 at bottom)
|
||||
* <br><br>Note that the mouse positions are given in Blender coordinates (y=0 at bottom)
|
||||
*
|
||||
* <br>Currently supported object types :
|
||||
* <li>UTF-8 string
|
||||
@ -82,6 +81,38 @@ public:
|
||||
m_data = &m_dragnDropEventData;
|
||||
}
|
||||
|
||||
~GHOST_EventDragnDrop()
|
||||
{
|
||||
//Free the dropped object data
|
||||
if (m_dragnDropEventData.data == NULL)
|
||||
return;
|
||||
|
||||
switch (m_dragnDropEventData.dataType) {
|
||||
case GHOST_kDragnDropTypeBitmap:
|
||||
//Not currently implemented
|
||||
break;
|
||||
case GHOST_kDragnDropTypeFilenames:
|
||||
{
|
||||
GHOST_TStringArray *strArray = (GHOST_TStringArray*)m_dragnDropEventData.data;
|
||||
int i;
|
||||
|
||||
for (i=0;i<strArray->count;i++)
|
||||
free(strArray->strings[i]);
|
||||
|
||||
free(strArray);
|
||||
}
|
||||
break;
|
||||
case GHOST_kDragnDropTypeString:
|
||||
free(m_dragnDropEventData.data);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
/** The x,y-coordinates of the cursor position. */
|
||||
GHOST_TEventDragnDropData m_dragnDropEventData;
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "GHOST_EventPrinter.h"
|
||||
#include <iostream>
|
||||
#include "GHOST_EventKey.h"
|
||||
#include "GHOST_EventDragnDrop.h"
|
||||
#include "GHOST_Debug.h"
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
@ -98,6 +99,76 @@ bool GHOST_EventPrinter::processEvent(GHOST_IEvent* event)
|
||||
}
|
||||
break;
|
||||
|
||||
case GHOST_kEventDraggingEntered:
|
||||
{
|
||||
GHOST_TEventDragnDropData* dragnDropData = (GHOST_TEventDragnDropData*)((GHOST_IEvent*)event)->getData();
|
||||
std::cout << "GHOST_kEventDraggingEntered, dragged object type : " << dragnDropData->dataType;
|
||||
std::cout << " mouse at x=" << dragnDropData->x << " y=" << dragnDropData->y;
|
||||
}
|
||||
break;
|
||||
|
||||
case GHOST_kEventDraggingUpdated:
|
||||
{
|
||||
GHOST_TEventDragnDropData* dragnDropData = (GHOST_TEventDragnDropData*)((GHOST_IEvent*)event)->getData();
|
||||
std::cout << "GHOST_kEventDraggingUpdated, dragged object type : " << dragnDropData->dataType;
|
||||
std::cout << " mouse at x=" << dragnDropData->x << " y=" << dragnDropData->y;
|
||||
}
|
||||
break;
|
||||
|
||||
case GHOST_kEventDraggingExited:
|
||||
{
|
||||
GHOST_TEventDragnDropData* dragnDropData = (GHOST_TEventDragnDropData*)((GHOST_IEvent*)event)->getData();
|
||||
std::cout << "GHOST_kEventDraggingExited, dragged object type : " << dragnDropData->dataType;
|
||||
}
|
||||
break;
|
||||
|
||||
case GHOST_kEventDraggingDropDone:
|
||||
{
|
||||
GHOST_TEventDragnDropData* dragnDropData = (GHOST_TEventDragnDropData*)((GHOST_IEvent*)event)->getData();
|
||||
std::cout << "GHOST_kEventDraggingDropDone, dragged object type : " << dragnDropData->dataType;
|
||||
std::cout << " mouse at x=" << dragnDropData->x << " y=" << dragnDropData->y;
|
||||
switch (dragnDropData->dataType) {
|
||||
case GHOST_kDragnDropTypeString:
|
||||
std::cout << " string received = " << (char*)dragnDropData->data;
|
||||
break;
|
||||
case GHOST_kDragnDropTypeFilenames:
|
||||
{
|
||||
GHOST_TStringArray *strArray = (GHOST_TStringArray*)dragnDropData->data;
|
||||
int i;
|
||||
std::cout << "\nReceived " << strArray->count << " filenames";
|
||||
for (i=0;i<strArray->count;i++)
|
||||
std::cout << " Filename #" << i << ": " << strArray->strings[i];
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case GHOST_kEventDraggingDropOnIcon:
|
||||
{
|
||||
GHOST_TEventDragnDropData* dragnDropData = (GHOST_TEventDragnDropData*)((GHOST_IEvent*)event)->getData();
|
||||
std::cout << "GHOST_kEventDraggingDropOnIcon, dragged object type : " << dragnDropData->dataType;
|
||||
switch (dragnDropData->dataType) {
|
||||
case GHOST_kDragnDropTypeString:
|
||||
std::cout << " string received = " << (char*)dragnDropData->data;
|
||||
break;
|
||||
case GHOST_kDragnDropTypeFilenames:
|
||||
{
|
||||
GHOST_TStringArray *strArray = (GHOST_TStringArray*)dragnDropData->data;
|
||||
int i;
|
||||
std::cout << "\nReceived " << strArray->count << " filenames";
|
||||
for (i=0;i<strArray->count;i++)
|
||||
std::cout << " Filename #" << i << ": " << strArray->strings[i];
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case GHOST_kEventQuit:
|
||||
std::cout << "GHOST_kEventQuit";
|
||||
break;
|
||||
|
@ -54,7 +54,6 @@
|
||||
GHOST_System::GHOST_System()
|
||||
: m_displayManager(0), m_timerManager(0), m_windowManager(0), m_eventManager(0), m_ndofManager(0)
|
||||
{
|
||||
m_canAcceptDragOperation = false;
|
||||
}
|
||||
|
||||
|
||||
@ -276,16 +275,6 @@ GHOST_TSuccess GHOST_System::getButtonState(GHOST_TButtonMask mask, bool& isDown
|
||||
return success;
|
||||
}
|
||||
|
||||
void GHOST_System::setAcceptDragOperation(bool canAccept)
|
||||
{
|
||||
m_canAcceptDragOperation = canAccept;
|
||||
}
|
||||
|
||||
bool GHOST_System::canAcceptDragOperation() const
|
||||
{
|
||||
return m_canAcceptDragOperation;
|
||||
}
|
||||
|
||||
GHOST_TSuccess GHOST_System::init()
|
||||
{
|
||||
m_timerManager = new GHOST_TimerManager ();
|
||||
|
@ -232,21 +232,6 @@ public:
|
||||
*/
|
||||
virtual GHOST_TSuccess getButtonState(GHOST_TButtonMask mask, bool& isDown) const;
|
||||
|
||||
/***************************************************************************************
|
||||
** Drag'n'drop operations
|
||||
***************************************************************************************/
|
||||
|
||||
/**
|
||||
* Tells if the ongoing drag'n'drop object can be accepted upon mouse drop
|
||||
*/
|
||||
virtual void setAcceptDragOperation(bool canAccept);
|
||||
|
||||
/**
|
||||
* Returns acceptance of the dropped object
|
||||
* Usually called by the "object dropped" event handling function
|
||||
*/
|
||||
virtual bool canAcceptDragOperation() const;
|
||||
|
||||
/***************************************************************************************
|
||||
** Other (internal) functionality.
|
||||
***************************************************************************************/
|
||||
@ -348,9 +333,6 @@ protected:
|
||||
/** The N-degree of freedom device manager */
|
||||
GHOST_NDOFManager* m_ndofManager;
|
||||
|
||||
/** The acceptance of the "drop candidate" of the current drag'n'drop operation */
|
||||
bool m_canAcceptDragOperation;
|
||||
|
||||
/** Prints all the events. */
|
||||
#ifdef GHOST_DEBUG
|
||||
GHOST_EventPrinter* m_eventPrinter;
|
||||
|
@ -246,6 +246,9 @@ protected:
|
||||
/** Start time at initialization. */
|
||||
GHOST_TUns64 m_start_time;
|
||||
|
||||
/** Event has been processed directly by Cocoa and has sent a ghost event to be dispatched */
|
||||
bool m_outsideLoopEventProcessed;
|
||||
|
||||
/** Mouse buttons state */
|
||||
GHOST_TUns32 m_pressedMouseButtons;
|
||||
|
||||
|
@ -449,12 +449,12 @@ GHOST_SystemCocoa::GHOST_SystemCocoa()
|
||||
m_pressedMouseButtons =0;
|
||||
m_cursorDelta_x=0;
|
||||
m_cursorDelta_y=0;
|
||||
m_outsideLoopEventProcessed = false;
|
||||
m_displayManager = new GHOST_DisplayManagerCocoa ();
|
||||
GHOST_ASSERT(m_displayManager, "GHOST_SystemCocoa::GHOST_SystemCocoa(): m_displayManager==0\n");
|
||||
m_displayManager->initialize();
|
||||
|
||||
//NSEvent timeStamp is given in system uptime, state start date is boot time
|
||||
//FIXME : replace by Cocoa equivalent
|
||||
int mib[2];
|
||||
struct timeval boottime;
|
||||
size_t len;
|
||||
@ -560,17 +560,13 @@ GHOST_TSuccess GHOST_SystemCocoa::init()
|
||||
GHOST_TUns64 GHOST_SystemCocoa::getMilliSeconds() const
|
||||
{
|
||||
//Cocoa equivalent exists in 10.6 ([[NSProcessInfo processInfo] systemUptime])
|
||||
int mib[2];
|
||||
struct timeval boottime;
|
||||
size_t len;
|
||||
struct timeval currentTime;
|
||||
|
||||
mib[0] = CTL_KERN;
|
||||
mib[1] = KERN_BOOTTIME;
|
||||
len = sizeof(struct timeval);
|
||||
gettimeofday(¤tTime, NULL);
|
||||
|
||||
sysctl(mib, 2, &boottime, &len, NULL, 0);
|
||||
//Return timestamp of system uptime
|
||||
|
||||
return ((boottime.tv_sec*1000)+(boottime.tv_usec/1000));
|
||||
return ((currentTime.tv_sec*1000)+(currentTime.tv_usec/1000)-m_start_time);
|
||||
}
|
||||
|
||||
|
||||
@ -744,6 +740,8 @@ bool GHOST_SystemCocoa::processEvents(bool waitForEvent)
|
||||
bool anyProcessed = false;
|
||||
NSEvent *event;
|
||||
|
||||
m_outsideLoopEventProcessed = false;
|
||||
|
||||
// SetMouseCoalescingEnabled(false, NULL);
|
||||
//TODO : implement timer ??
|
||||
|
||||
@ -842,7 +840,7 @@ bool GHOST_SystemCocoa::processEvents(bool waitForEvent)
|
||||
|
||||
|
||||
|
||||
return anyProcessed;
|
||||
return anyProcessed || m_outsideLoopEventProcessed;
|
||||
}
|
||||
|
||||
//Note: called from NSWindow delegate
|
||||
@ -879,6 +877,8 @@ GHOST_TSuccess GHOST_SystemCocoa::handleWindowEvent(GHOST_TEventType eventType,
|
||||
return GHOST_kFailure;
|
||||
break;
|
||||
}
|
||||
|
||||
m_outsideLoopEventProcessed = true;
|
||||
return GHOST_kSuccess;
|
||||
}
|
||||
|
||||
@ -892,10 +892,9 @@ GHOST_TSuccess GHOST_SystemCocoa::handleDraggingEvent(GHOST_TEventType eventType
|
||||
switch(eventType)
|
||||
{
|
||||
case GHOST_kEventDraggingEntered:
|
||||
setAcceptDragOperation(FALSE); //Drag operation needs to be accepted explicitely by the event manager
|
||||
case GHOST_kEventDraggingUpdated:
|
||||
case GHOST_kEventDraggingExited:
|
||||
pushEvent(new GHOST_EventDragnDrop(getMilliSeconds(),GHOST_kEventDraggingEntered,draggedObjectType,window,mouseX,mouseY,NULL));
|
||||
pushEvent(new GHOST_EventDragnDrop(getMilliSeconds(),eventType,draggedObjectType,window,mouseX,mouseY,NULL));
|
||||
break;
|
||||
|
||||
case GHOST_kEventDraggingDropDone:
|
||||
@ -914,6 +913,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleDraggingEvent(GHOST_TEventType eventType
|
||||
switch (draggedObjectType) {
|
||||
case GHOST_kDragnDropTypeBitmap:
|
||||
//TODO: implement bitmap conversion to a blender friendly format
|
||||
return GHOST_kFailure;
|
||||
break;
|
||||
case GHOST_kDragnDropTypeFilenames:
|
||||
droppedArray = (NSArray*)data;
|
||||
@ -930,7 +930,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleDraggingEvent(GHOST_TEventType eventType
|
||||
{
|
||||
droppedStr = [droppedArray objectAtIndex:i];
|
||||
|
||||
pastedTextSize = [droppedStr lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
|
||||
pastedTextSize = [droppedStr lengthOfBytesUsingEncoding:NSISOLatin1StringEncoding];
|
||||
temp_buff = (GHOST_TUns8*) malloc(pastedTextSize+1);
|
||||
|
||||
if (!temp_buff) {
|
||||
@ -938,7 +938,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleDraggingEvent(GHOST_TEventType eventType
|
||||
break;
|
||||
}
|
||||
|
||||
strncpy((char*)temp_buff, [droppedStr UTF8String], pastedTextSize);
|
||||
strncpy((char*)temp_buff, [droppedStr cStringUsingEncoding:NSISOLatin1StringEncoding], pastedTextSize);
|
||||
temp_buff[pastedTextSize] = '\0';
|
||||
|
||||
strArray->strings[i] = temp_buff;
|
||||
@ -949,7 +949,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleDraggingEvent(GHOST_TEventType eventType
|
||||
|
||||
case GHOST_kDragnDropTypeString:
|
||||
droppedStr = (NSString*)data;
|
||||
pastedTextSize = [droppedStr lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
|
||||
pastedTextSize = [droppedStr lengthOfBytesUsingEncoding:NSISOLatin1StringEncoding];
|
||||
|
||||
temp_buff = (GHOST_TUns8*) malloc(pastedTextSize+1);
|
||||
|
||||
@ -957,7 +957,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleDraggingEvent(GHOST_TEventType eventType
|
||||
return GHOST_kFailure;
|
||||
}
|
||||
|
||||
strncpy((char*)temp_buff, [droppedStr UTF8String], pastedTextSize);
|
||||
strncpy((char*)temp_buff, [droppedStr cStringUsingEncoding:NSISOLatin1StringEncoding], pastedTextSize);
|
||||
|
||||
temp_buff[pastedTextSize] = '\0';
|
||||
|
||||
@ -968,12 +968,13 @@ GHOST_TSuccess GHOST_SystemCocoa::handleDraggingEvent(GHOST_TEventType eventType
|
||||
return GHOST_kFailure;
|
||||
break;
|
||||
}
|
||||
pushEvent(new GHOST_EventDragnDrop(getMilliSeconds(),GHOST_kEventDraggingEntered,draggedObjectType,window,mouseX,mouseY,eventData));
|
||||
pushEvent(new GHOST_EventDragnDrop(getMilliSeconds(),eventType,draggedObjectType,window,mouseX,mouseY,eventData));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return GHOST_kFailure;
|
||||
}
|
||||
m_outsideLoopEventProcessed = true;
|
||||
return GHOST_kSuccess;
|
||||
}
|
||||
|
||||
@ -1006,6 +1007,7 @@ GHOST_TUns8 GHOST_SystemCocoa::handleQuitRequest()
|
||||
}
|
||||
else {
|
||||
pushEvent( new GHOST_Event(getMilliSeconds(), GHOST_kEventQuit, NULL) );
|
||||
m_outsideLoopEventProcessed = true;
|
||||
return GHOST_kExitNow;
|
||||
}
|
||||
|
||||
@ -1078,7 +1080,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
|
||||
case NSLeftMouseDown:
|
||||
case NSRightMouseDown:
|
||||
case NSOtherMouseDown:
|
||||
pushEvent(new GHOST_EventButton([event timestamp], GHOST_kEventButtonDown, window, convertButton([event buttonNumber])));
|
||||
pushEvent(new GHOST_EventButton([event timestamp]*1000, GHOST_kEventButtonDown, window, convertButton([event buttonNumber])));
|
||||
//Handle tablet events combined with mouse events
|
||||
switch ([event subtype]) {
|
||||
case NX_SUBTYPE_TABLET_POINT:
|
||||
@ -1096,7 +1098,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
|
||||
case NSLeftMouseUp:
|
||||
case NSRightMouseUp:
|
||||
case NSOtherMouseUp:
|
||||
pushEvent(new GHOST_EventButton([event timestamp], GHOST_kEventButtonUp, window, convertButton([event buttonNumber])));
|
||||
pushEvent(new GHOST_EventButton([event timestamp]*1000, GHOST_kEventButtonUp, window, convertButton([event buttonNumber])));
|
||||
//Handle tablet events combined with mouse events
|
||||
switch ([event subtype]) {
|
||||
case NX_SUBTYPE_TABLET_POINT:
|
||||
@ -1140,7 +1142,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
|
||||
y_accum += -[event deltaY]; //Strange Apple implementation (inverted coordinates for the deltaY) ...
|
||||
window->setCursorGrabAccum(x_accum, y_accum);
|
||||
|
||||
pushEvent(new GHOST_EventCursor([event timestamp], GHOST_kEventCursorMove, window, x_warp+x_accum, y_warp+y_accum));
|
||||
pushEvent(new GHOST_EventCursor([event timestamp]*1000, GHOST_kEventCursorMove, window, x_warp+x_accum, y_warp+y_accum));
|
||||
}
|
||||
break;
|
||||
case GHOST_kGrabWrap: //Wrap cursor at area/window boundaries
|
||||
@ -1184,14 +1186,14 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
|
||||
|
||||
//Post event
|
||||
window->getCursorGrabInitPos(x_cur, y_cur);
|
||||
pushEvent(new GHOST_EventCursor([event timestamp], GHOST_kEventCursorMove, window, x_cur + x_accum, y_cur + y_accum));
|
||||
pushEvent(new GHOST_EventCursor([event timestamp]*1000, GHOST_kEventCursorMove, window, x_cur + x_accum, y_cur + y_accum));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
//Normal cursor operation: send mouse position in window
|
||||
NSPoint mousePos = [event locationInWindow];
|
||||
pushEvent(new GHOST_EventCursor([event timestamp], GHOST_kEventCursorMove, window, mousePos.x, mousePos.y));
|
||||
pushEvent(new GHOST_EventCursor([event timestamp]*1000, GHOST_kEventCursorMove, window, mousePos.x, mousePos.y));
|
||||
m_cursorDelta_x=0;
|
||||
m_cursorDelta_y=0; //Mouse motion occured between two cursor warps, so we can reset the delta counter
|
||||
}
|
||||
@ -1207,7 +1209,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
|
||||
if (deltaF == 0.0) break; //discard trackpad delta=0 events
|
||||
|
||||
delta = deltaF > 0.0 ? 1 : -1;
|
||||
pushEvent(new GHOST_EventWheel([event timestamp], window, delta));
|
||||
pushEvent(new GHOST_EventWheel([event timestamp]*1000, window, delta));
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1266,26 +1268,26 @@ GHOST_TSuccess GHOST_SystemCocoa::handleKeyEvent(void *eventPtr)
|
||||
break; //Cmd-Q is directly handled by Cocoa
|
||||
|
||||
if ([event type] == NSKeyDown) {
|
||||
pushEvent( new GHOST_EventKey([event timestamp], GHOST_kEventKeyDown, window, keyCode, ascii) );
|
||||
pushEvent( new GHOST_EventKey([event timestamp]*1000, GHOST_kEventKeyDown, window, keyCode, ascii) );
|
||||
//printf("\nKey pressed keyCode=%u ascii=%i %c",keyCode,ascii,ascii);
|
||||
} else {
|
||||
pushEvent( new GHOST_EventKey([event timestamp], GHOST_kEventKeyUp, window, keyCode, ascii) );
|
||||
pushEvent( new GHOST_EventKey([event timestamp]*1000, GHOST_kEventKeyUp, window, keyCode, ascii) );
|
||||
}
|
||||
break;
|
||||
|
||||
case NSFlagsChanged:
|
||||
modifiers = [event modifierFlags];
|
||||
if ((modifiers & NSShiftKeyMask) != (m_modifierMask & NSShiftKeyMask)) {
|
||||
pushEvent( new GHOST_EventKey([event timestamp], (modifiers & NSShiftKeyMask)?GHOST_kEventKeyDown:GHOST_kEventKeyUp, window, GHOST_kKeyLeftShift) );
|
||||
pushEvent( new GHOST_EventKey([event timestamp]*1000, (modifiers & NSShiftKeyMask)?GHOST_kEventKeyDown:GHOST_kEventKeyUp, window, GHOST_kKeyLeftShift) );
|
||||
}
|
||||
if ((modifiers & NSControlKeyMask) != (m_modifierMask & NSControlKeyMask)) {
|
||||
pushEvent( new GHOST_EventKey([event timestamp], (modifiers & NSControlKeyMask)?GHOST_kEventKeyDown:GHOST_kEventKeyUp, window, GHOST_kKeyLeftControl) );
|
||||
pushEvent( new GHOST_EventKey([event timestamp]*1000, (modifiers & NSControlKeyMask)?GHOST_kEventKeyDown:GHOST_kEventKeyUp, window, GHOST_kKeyLeftControl) );
|
||||
}
|
||||
if ((modifiers & NSAlternateKeyMask) != (m_modifierMask & NSAlternateKeyMask)) {
|
||||
pushEvent( new GHOST_EventKey([event timestamp], (modifiers & NSAlternateKeyMask)?GHOST_kEventKeyDown:GHOST_kEventKeyUp, window, GHOST_kKeyLeftAlt) );
|
||||
pushEvent( new GHOST_EventKey([event timestamp]*1000, (modifiers & NSAlternateKeyMask)?GHOST_kEventKeyDown:GHOST_kEventKeyUp, window, GHOST_kKeyLeftAlt) );
|
||||
}
|
||||
if ((modifiers & NSCommandKeyMask) != (m_modifierMask & NSCommandKeyMask)) {
|
||||
pushEvent( new GHOST_EventKey([event timestamp], (modifiers & NSCommandKeyMask)?GHOST_kEventKeyDown:GHOST_kEventKeyUp, window, GHOST_kKeyCommand) );
|
||||
pushEvent( new GHOST_EventKey([event timestamp]*1000, (modifiers & NSCommandKeyMask)?GHOST_kEventKeyDown:GHOST_kEventKeyUp, window, GHOST_kKeyCommand) );
|
||||
}
|
||||
|
||||
m_modifierMask = modifiers;
|
||||
@ -1318,7 +1320,7 @@ GHOST_TUns8* GHOST_SystemCocoa::getClipboard(bool selection) const
|
||||
}
|
||||
|
||||
NSArray *supportedTypes =
|
||||
[NSArray arrayWithObjects: @"public.utf8-plain-text", nil];
|
||||
[NSArray arrayWithObjects: NSStringPboardType, nil];
|
||||
|
||||
NSString *bestType = [[NSPasteboard generalPasteboard]
|
||||
availableTypeFromArray:supportedTypes];
|
||||
@ -1328,14 +1330,14 @@ GHOST_TUns8* GHOST_SystemCocoa::getClipboard(bool selection) const
|
||||
return NULL;
|
||||
}
|
||||
|
||||
NSString * textPasted = [pasteBoard stringForType:@"public.utf8-plain-text"];
|
||||
NSString * textPasted = [pasteBoard stringForType:NSStringPboardType];
|
||||
|
||||
if (textPasted == nil) {
|
||||
[pool drain];
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pastedTextSize = [textPasted lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
|
||||
pastedTextSize = [textPasted lengthOfBytesUsingEncoding:NSISOLatin1StringEncoding];
|
||||
|
||||
temp_buff = (GHOST_TUns8*) malloc(pastedTextSize+1);
|
||||
|
||||
@ -1344,7 +1346,7 @@ GHOST_TUns8* GHOST_SystemCocoa::getClipboard(bool selection) const
|
||||
return NULL;
|
||||
}
|
||||
|
||||
strncpy((char*)temp_buff, [textPasted UTF8String], pastedTextSize);
|
||||
strncpy((char*)temp_buff, [textPasted cStringUsingEncoding:NSISOLatin1StringEncoding], pastedTextSize);
|
||||
|
||||
temp_buff[pastedTextSize] = '\0';
|
||||
|
||||
@ -1372,13 +1374,13 @@ void GHOST_SystemCocoa::putClipboard(GHOST_TInt8 *buffer, bool selection) const
|
||||
return;
|
||||
}
|
||||
|
||||
NSArray *supportedTypes = [NSArray arrayWithObject:@"public.utf8-plain-text"];
|
||||
NSArray *supportedTypes = [NSArray arrayWithObject:NSStringPboardType];
|
||||
|
||||
[pasteBoard declareTypes:supportedTypes owner:nil];
|
||||
|
||||
textToCopy = [NSString stringWithUTF8String:buffer];
|
||||
textToCopy = [NSString stringWithCString:buffer encoding:NSISOLatin1StringEncoding];
|
||||
|
||||
[pasteBoard setString:textToCopy forType:@"public.utf8-plain-text"];
|
||||
[pasteBoard setString:textToCopy forType:NSStringPboardType];
|
||||
|
||||
[pool drain];
|
||||
}
|
||||
|
@ -53,6 +53,7 @@ GHOST_Window::GHOST_Window(
|
||||
m_stereoVisual(stereoVisual)
|
||||
{
|
||||
m_isUnsavedChanges = false;
|
||||
m_canAcceptDragOperation = false;
|
||||
|
||||
m_cursorGrabAccumPos[0] = 0;
|
||||
m_cursorGrabAccumPos[1] = 0;
|
||||
@ -154,6 +155,15 @@ GHOST_TSuccess GHOST_Window::setCustomCursorShape(GHOST_TUns8 *bitmap, GHOST_TUn
|
||||
}
|
||||
}
|
||||
|
||||
void GHOST_Window::setAcceptDragOperation(bool canAccept)
|
||||
{
|
||||
m_canAcceptDragOperation = canAccept;
|
||||
}
|
||||
|
||||
bool GHOST_Window::canAcceptDragOperation() const
|
||||
{
|
||||
return m_canAcceptDragOperation;
|
||||
}
|
||||
|
||||
GHOST_TSuccess GHOST_Window::setModifiedState(bool isUnsavedChanges)
|
||||
{
|
||||
|
@ -183,6 +183,17 @@ public:
|
||||
*/
|
||||
virtual GHOST_TSuccess getCursorGrabBounds(GHOST_Rect& bounds);
|
||||
|
||||
/**
|
||||
* Tells if the ongoing drag'n'drop object can be accepted upon mouse drop
|
||||
*/
|
||||
virtual void setAcceptDragOperation(bool canAccept);
|
||||
|
||||
/**
|
||||
* Returns acceptance of the dropped object
|
||||
* Usually called by the "object dropped" event handling function
|
||||
*/
|
||||
virtual bool canAcceptDragOperation() const;
|
||||
|
||||
/**
|
||||
* Sets the window "modified" status, indicating unsaved changes
|
||||
* @param isUnsavedChanges Unsaved changes or not
|
||||
@ -294,6 +305,9 @@ protected:
|
||||
/** The current shape of the cursor */
|
||||
GHOST_TStandardCursor m_cursorShape;
|
||||
|
||||
/** The acceptance of the "drop candidate" of the current drag'n'drop operation */
|
||||
bool m_canAcceptDragOperation;
|
||||
|
||||
/** Modified state : are there unsaved changes */
|
||||
bool m_isUnsavedChanges;
|
||||
|
||||
|
@ -153,10 +153,15 @@ extern "C" {
|
||||
else if ([[draggingPBoard types] containsObject:NSStringPboardType]) m_draggedObjectType = GHOST_kDragnDropTypeString;
|
||||
else return NSDragOperationNone;
|
||||
|
||||
associatedWindow->setAcceptDragOperation(FALSE); //Drag operation needs to be accepted explicitly by the event manager
|
||||
systemCocoa->handleDraggingEvent(GHOST_kEventDraggingEntered, m_draggedObjectType, associatedWindow, mouseLocation.x, mouseLocation.y, nil);
|
||||
return NSDragOperationCopy;
|
||||
}
|
||||
|
||||
- (BOOL)wantsPeriodicDraggingUpdates
|
||||
{
|
||||
return NO; //No need to overflow blender event queue. Events shall be sent only on changes
|
||||
}
|
||||
|
||||
- (NSDragOperation)draggingUpdated:(id < NSDraggingInfo >)sender
|
||||
{
|
||||
@ -174,7 +179,7 @@ extern "C" {
|
||||
|
||||
- (BOOL)prepareForDragOperation:(id < NSDraggingInfo >)sender
|
||||
{
|
||||
if (systemCocoa->canAcceptDragOperation())
|
||||
if (associatedWindow->canAcceptDragOperation())
|
||||
return YES;
|
||||
else
|
||||
return NO;
|
||||
@ -194,7 +199,7 @@ extern "C" {
|
||||
data = [draggingPBoard propertyListForType:NSFilenamesPboardType];
|
||||
break;
|
||||
case GHOST_kDragnDropTypeString:
|
||||
data = [draggingPBoard stringForType:@"public.utf8-plain-text"];
|
||||
data = [draggingPBoard stringForType:NSStringPboardType];
|
||||
break;
|
||||
default:
|
||||
return NO;
|
||||
|
@ -364,6 +364,10 @@
|
||||
RelativePath="..\..\intern\GHOST_EventCursor.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\intern\GHOST_EventDragnDrop.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\intern\GHOST_EventKey.h"
|
||||
>
|
||||
|
@ -77,6 +77,12 @@ extern "C" {
|
||||
short _MEM_freeN(void *vmemh, char *file, int line);
|
||||
#define MEM_freeN(vmemh) _MEM_freeN(vmemh, __FILE__, __LINE__)
|
||||
|
||||
|
||||
/**
|
||||
* Return zero if memory is not in allocated list
|
||||
*/
|
||||
short MEM_testN(void *vmemh);
|
||||
|
||||
/**
|
||||
* Duplicates a block of memory, and returns a pointer to the
|
||||
* newly allocated block. */
|
||||
@ -106,6 +112,9 @@ extern "C" {
|
||||
* blocks. */
|
||||
void MEM_printmemlist(void);
|
||||
|
||||
/** calls the function on all allocated memory blocks. */
|
||||
void MEM_callbackmemlist(void (*func)(void*));
|
||||
|
||||
/** Print statistics about memory usage */
|
||||
void MEM_printmemlist_stats(void);
|
||||
|
||||
|
@ -430,6 +430,47 @@ static void MEM_printmemlist_internal( int pydict )
|
||||
mem_unlock_thread();
|
||||
}
|
||||
|
||||
void MEM_callbackmemlist(void (*func)(void*)) {
|
||||
MemHead *membl;
|
||||
|
||||
mem_lock_thread();
|
||||
|
||||
membl = membase->first;
|
||||
if (membl) membl = MEMNEXT(membl);
|
||||
|
||||
while(membl) {
|
||||
func(membl+1);
|
||||
if(membl->next)
|
||||
membl= MEMNEXT(membl->next);
|
||||
else break;
|
||||
}
|
||||
|
||||
mem_unlock_thread();
|
||||
}
|
||||
|
||||
short MEM_testN(void *vmemh) {
|
||||
MemHead *membl;
|
||||
|
||||
mem_lock_thread();
|
||||
|
||||
membl = membase->first;
|
||||
if (membl) membl = MEMNEXT(membl);
|
||||
|
||||
while(membl) {
|
||||
if (vmemh == membl+1)
|
||||
return 1;
|
||||
|
||||
if(membl->next)
|
||||
membl= MEMNEXT(membl->next);
|
||||
else break;
|
||||
}
|
||||
|
||||
mem_unlock_thread();
|
||||
|
||||
print_error("Memoryblock %p: pointer not in memlist\n", vmemh);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void MEM_printmemlist( void ) {
|
||||
MEM_printmemlist_internal(0);
|
||||
}
|
||||
@ -490,7 +531,6 @@ short _MEM_freeN(void *vmemh, char *file, int line) /* anders compileertie niet
|
||||
}
|
||||
|
||||
mem_lock_thread();
|
||||
|
||||
if ((memh->tag1 == MEMTAG1) && (memh->tag2 == MEMTAG2) && ((memh->len & 0x3) == 0)) {
|
||||
memt = (MemTail *)(((char *) memh) + sizeof(MemHead) + memh->len);
|
||||
if (memt->tag3 == MEMTAG3){
|
||||
|
@ -387,6 +387,10 @@
|
||||
RelativePath="..\..\..\source\blender\python\generic\Geometry.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\python\generic\IDProp.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\python\generic\Mathutils.c"
|
||||
>
|
||||
|
@ -156,13 +156,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blenderplayer", "..\gameeng
|
||||
{9C71A793-C177-4CAB-8EC5-923D500B39F8} = {9C71A793-C177-4CAB-8EC5-923D500B39F8}
|
||||
{F90BD995-FFA4-4B18-81E8-FA4322C939E8} = {F90BD995-FFA4-4B18-81E8-FA4322C939E8}
|
||||
{BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23} = {BB6AA598-B336-4F8B-9DF9-8CAE7BE71C23}
|
||||
{8154A59A-CAED-403D-AB94-BC4E7C032666} = {8154A59A-CAED-403D-AB94-BC4E7C032666}
|
||||
{3648FB9A-C36F-43AB-AED0-1F1361E67FC7} = {3648FB9A-C36F-43AB-AED0-1F1361E67FC7}
|
||||
{542A9FA1-B7FF-441C-AE15-054DB31D3488} = {542A9FA1-B7FF-441C-AE15-054DB31D3488}
|
||||
{D8ABD6A5-1B36-4D62-934E-B5C6801130B0} = {D8ABD6A5-1B36-4D62-934E-B5C6801130B0}
|
||||
{E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B} = {E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}
|
||||
{727F90AC-ABE6-40BF-8937-C2F2F1D13DEA} = {727F90AC-ABE6-40BF-8937-C2F2F1D13DEA}
|
||||
{BAC615B0-F1AF-418B-8D23-A10FD8870D6A} = {BAC615B0-F1AF-418B-8D23-A10FD8870D6A}
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4} = {E8904FB3-F8F7-BC21-87A6-029A57B901F4}
|
||||
{E90C7BC2-CF30-4A60-A8F2-0050D592E358} = {E90C7BC2-CF30-4A60-A8F2-0050D592E358}
|
||||
{8B8D4FC3-3234-4E54-8376-5AB83D00D164} = {8B8D4FC3-3234-4E54-8376-5AB83D00D164}
|
||||
{4B6AFCC5-968C-424A-8F20-76E41B3BEF74} = {4B6AFCC5-968C-424A-8F20-76E41B3BEF74}
|
||||
@ -1130,6 +1130,7 @@ Global
|
||||
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
|
||||
{B093415D-C0F6-4E76-8F5A-6BC1917BCE9E}.Debug|Win32.Build.0 = 3DPlugin Debug|Win32
|
||||
@ -1188,6 +1189,7 @@ Global
|
||||
{A90C4918-4B21-4277-93BD-AF65F30951D9}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{A90C4918-4B21-4277-93BD-AF65F30951D9}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{A90C4918-4B21-4277-93BD-AF65F30951D9}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{A90C4918-4B21-4277-93BD-AF65F30951D9}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{A90C4918-4B21-4277-93BD-AF65F30951D9}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{A90C4918-4B21-4277-93BD-AF65F30951D9}.Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
|
||||
{A90C4918-4B21-4277-93BD-AF65F30951D9}.Debug|Win32.Build.0 = 3DPlugin Debug|Win32
|
||||
@ -1362,12 +1364,12 @@ Global
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Debug|Win32.ActiveCfg = BlenderPlayer Debug|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Debug|Win32.Build.0 = BlenderPlayer Debug|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Debug|Win32.ActiveCfg = BlenderPlayer Release|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Debug|Win32.Build.0 = BlenderPlayer Release|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{884D8731-654C-4C7F-9A75-8F37A305BE1E}.Release|Win32.Build.0 = Blender Release|Win32
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.3D Plugin Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
@ -1384,8 +1386,8 @@ Global
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{FB88301F-F725-401B-ACD7-D2ABBF333B71}.Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
@ -1442,8 +1444,8 @@ Global
|
||||
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32
|
||||
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32
|
||||
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{7495FE37-933A-4AC1-BB2A-B3FDB4DE4284}.Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
@ -1464,8 +1466,8 @@ Global
|
||||
{D1A9312F-4557-4982-A0F4-4D08508235F4}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32
|
||||
{D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{D1A9312F-4557-4982-A0F4-4D08508235F4}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{D1A9312F-4557-4982-A0F4-4D08508235F4}.Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{D1A9312F-4557-4982-A0F4-4D08508235F4}.Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{D1A9312F-4557-4982-A0F4-4D08508235F4}.Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
@ -1480,8 +1482,8 @@ Global
|
||||
{59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32
|
||||
{59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32
|
||||
{59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{59567A5B-F63A-4A5C-B33A-0A45C300F4DC}.Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
@ -1498,8 +1500,8 @@ Global
|
||||
{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32
|
||||
{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32
|
||||
{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}.Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
@ -1520,8 +1522,8 @@ Global
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Debug|Win32.Build.0 = 3DPlugin Debug|Win32
|
||||
{E8904FB3-F8F7-BC21-87A6-029A57B901F4}.Release|Win32.ActiveCfg = 3DPlugin Release|Win32
|
||||
@ -1540,8 +1542,8 @@ Global
|
||||
{87032FD2-9BA0-6B43-BE33-8902BA8F9172}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32
|
||||
{87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{87032FD2-9BA0-6B43-BE33-8902BA8F9172}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{87032FD2-9BA0-6B43-BE33-8902BA8F9172}.Debug|Win32.ActiveCfg = 3DPlugin Debug|Win32
|
||||
{87032FD2-9BA0-6B43-BE33-8902BA8F9172}.Debug|Win32.Build.0 = 3DPlugin Debug|Win32
|
||||
{87032FD2-9BA0-6B43-BE33-8902BA8F9172}.Release|Win32.ActiveCfg = 3DPlugin Release|Win32
|
||||
@ -1558,8 +1560,8 @@ Global
|
||||
{79D0B232-208C-F208-DA71-79B4AC088602}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{79D0B232-208C-F208-DA71-79B4AC088602}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{79D0B232-208C-F208-DA71-79B4AC088602}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32
|
||||
{79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32
|
||||
{79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{79D0B232-208C-F208-DA71-79B4AC088602}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{79D0B232-208C-F208-DA71-79B4AC088602}.Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
|
||||
@ -1578,8 +1580,8 @@ Global
|
||||
{8BFA4082-773B-D100-BC24-659083BA023F}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{8BFA4082-773B-D100-BC24-659083BA023F}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{8BFA4082-773B-D100-BC24-659083BA023F}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32
|
||||
{8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32
|
||||
{8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{8BFA4082-773B-D100-BC24-659083BA023F}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{8BFA4082-773B-D100-BC24-659083BA023F}.Debug|Win32.ActiveCfg = 3D Plugin Debug|Win32
|
||||
@ -1600,8 +1602,8 @@ Global
|
||||
{37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Release|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Release|Win32.Build.0 = Blender Debug|Win32
|
||||
{37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{37DB6A34-2E91-4ADB-BC1A-02F6D0A5E2F1}.Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
@ -1618,10 +1620,8 @@ Global
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Blender Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Blender Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Blender Release|Win32.Build.0 = Blender Release|Win32
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Release|Win32
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.BlenderPlayer Debug|Win32.Build.0 = Blender Release|Win32
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.BlenderPlayer Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.BlenderPlayer Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.BlenderPlayer Release|Win32.Build.0 = Blender Release|Win32
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Debug|Win32.ActiveCfg = Blender Debug|Win32
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Debug|Win32.Build.0 = Blender Debug|Win32
|
||||
{76D3102B-7DD2-8BA1-034A-8B19FE2897C2}.Release|Win32.ActiveCfg = Blender Release|Win32
|
||||
|
@ -108,7 +108,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="ECHO Moving libraries and export definitions...
MOVE /Y ..\..\bin\blender.lib ..\..\..\build\msvc_9\libs
MOVE /Y ..\..\bin\blender.exp ..\..\..\build\msvc_9\libs
ECHO Copying required 3rd party dlls...
XCOPY /Y ..\..\..\lib\windows\python\lib\python31.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\release\python31.zip ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\release\zlib.pyd ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\install\msvc_9
ECHO Copying language folder
IF NOT EXIST ..\..\..\install\msvc_9\.blender MKDIR ..\..\..\install\msvc_9\.blender
XCOPY /Y ..\..\bin\.blender ..\..\..\install\msvc_9\.blender /E
ECHO Copying python scripts
IF NOT EXIST ..\..\..\install\msvc_9\.blender\scripts MKDIR ..\..\..\install\msvc_9\.blender\scripts
XCOPY /Y ..\..\release\scripts ..\..\..\install\msvc_9\.blender\scripts /E
ECHO Copying python ui scripts
IF NOT EXIST ..\..\bin\.blender\ui MKDIR ..\..\..\install\msvc_9\.blender\ui
XCOPY /Y ..\..\release\ui ..\..\..\install\msvc_9\.blender\ui /E
ECHO Copying manuals/text
XCOPY/Y ..\..\release\text ..\..\..\install\msvc_9 /E
ECHO Done
"
|
||||
CommandLine="ECHO Moving libraries and export definitions...
MOVE /Y ..\..\bin\blender.lib ..\..\..\build\msvc_9\libs
MOVE /Y ..\..\bin\blender.exp ..\..\..\build\msvc_9\libs
ECHO Copying required 3rd party dlls...
XCOPY /Y ..\..\..\lib\windows\python\lib\python31.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\release\python31.zip ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\install\msvc_9
XCOPY /Y ..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\install\msvc_9
ECHO Copying language folder
IF NOT EXIST ..\..\..\install\msvc_9\.blender MKDIR ..\..\..\install\msvc_9\.blender
XCOPY /Y ..\..\bin\.blender ..\..\..\install\msvc_9\.blender /E
ECHO Copying python scripts
IF NOT EXIST ..\..\..\install\msvc_9\.blender\scripts MKDIR ..\..\..\install\msvc_9\.blender\scripts
XCOPY /Y ..\..\release\scripts ..\..\..\install\msvc_9\.blender\scripts /E
ECHO Copying python ui scripts
IF NOT EXIST ..\..\bin\.blender\ui MKDIR ..\..\..\install\msvc_9\.blender\ui
XCOPY /Y ..\..\release\ui ..\..\..\install\msvc_9\.blender\ui /E
ECHO Copying manuals/text
XCOPY/Y ..\..\release\text ..\..\..\install\msvc_9 /E
ECHO Done
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
@ -169,7 +169,7 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386
"
|
||||
AdditionalDependencies="libsamplerate.lib SDL.lib freetype2ST.lib gnu_gettext.lib qtmlClient.lib OpenAL32.lib wrap_oal.lib ws2_32.lib dxguid.lib opengl32.lib libjpeg.lib glu32.lib vfw32.lib winmm.lib libpng_st.lib zlib.lib python31_d.lib pthreadVSE2.lib pthreadVC2.lib libtiff.lib Half_d.lib Iex_d.lib Imath_d.lib IlmImf_d.lib IlmThread_d.lib avcodec-52.lib avformat-52.lib avdevice-52.lib avutil-50.lib swscale-0.lib libsndfile-1.lib OpenCOLLADABaseUtils.lib OpenCOLLADAFramework.lib OpenCOLLADAStreamWriter.lib OpenCOLLADASaxFrameworkLoader.lib pcre.lib UTF.lib GeneratedSaxParser.lib MathMLSolver.lib xml2.lib"
|
||||
AdditionalDependencies="libsamplerate.lib SDL.lib freetype2ST.lib gnu_gettext.lib qtmlClient.lib OpenAL32.lib wrap_oal.lib ws2_32.lib dxguid.lib opengl32.lib libjpeg.lib glu32.lib vfw32.lib winmm.lib libpng_st.lib zlib.lib python31_d.lib pthreadVSE2.lib pthreadVC2.lib libtiff.lib Half_d.lib Iex_d.lib Imath_d.lib IlmImf_d.lib IlmThread_d.lib avcodec-52.lib avformat-52.lib avdevice-52.lib avutil-50.lib swscale-0.lib libsndfile-1.lib OpenCOLLADABaseUtils_d.lib OpenCOLLADAFramework_d.lib OpenCOLLADAStreamWriter_d.lib OpenCOLLADASaxFrameworkLoader_d.lib pcre_d.lib UTF_d.lib GeneratedSaxParser_d.lib MathMLSolver_d.lib xml2_d.lib"
|
||||
ShowProgress="0"
|
||||
OutputFile="..\..\..\install\msvc_9d\blender.exe"
|
||||
LinkIncremental="2"
|
||||
@ -202,7 +202,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="ECHO Moving libraries and export definitions...
MOVE /Y ..\..\bin\debug\blender.lib ..\..\..\build\msvc_9\libs\debug
MOVE /Y ..\..\bin\debug\blender.exp ..\..\..\build\msvc_9\libs\debug
MOVE /Y ..\..\bin\debug\blender.ilk ..\..\..\build\msvc_9\libs\debug
ECHO Copying required 3rd party dlls...
XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\python\lib\python31_d.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\release\python31.zip ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\release\zlib.pyd ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\CRTL\lib\msvcrtd.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\install\msvc_9d
ECHO Copying language folder
IF NOT EXIST ..\..\..\install\msvc_9d\.blender MKDIR ..\..\..\install\msvc_9d\.blender
XCOPY /Y ..\..\bin\.blender ..\..\..\install\msvc_9d\.blender /E
ECHO Copying python scripts
IF NOT EXIST ..\..\..\install\msvc_9d\.blender\scripts MKDIR ..\..\..\install\msvc_9d\.blender\scripts
XCOPY /Y ..\..\release\scripts ..\..\..\install\msvc_9d\.blender\scripts /E
ECHO Copying python ui scripts
IF NOT EXIST ..\..\..\install\msvc_9d\.blender\ui MKDIR ..\..\..\install\msvc_9d\.blender\ui
XCOPY /Y ..\..\release\ui ..\..\..\install\msvc_9d\.blender\ui /E
ECHO Copying manuals/text
XCOPY/Y ..\..\release\text ..\..\..\install\msvc_9d /E
ECHO Done
"
|
||||
CommandLine="ECHO Copying required 3rd party dlls...
XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\python\lib\python31_d.dll ..\..\..\install\msvc_9d
COPY /Y ..\..\..\lib\windows\release\python31.zip ..\..\..\install\msvc_9d\python31_d.zip
XCOPY /Y ..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\CRTL\lib\msvcrtd.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\install\msvc_9d
ECHO Copying language folder
IF NOT EXIST ..\..\..\install\msvc_9d\.blender MKDIR ..\..\..\install\msvc_9d\.blender
XCOPY /Y ..\..\bin\.blender ..\..\..\install\msvc_9d\.blender /E
ECHO Copying python scripts
IF NOT EXIST ..\..\..\install\msvc_9d\.blender\scripts MKDIR ..\..\..\install\msvc_9d\.blender\scripts
XCOPY /Y ..\..\release\scripts ..\..\..\install\msvc_9d\.blender\scripts /E
ECHO Copying python ui scripts
IF NOT EXIST ..\..\..\install\msvc_9d\.blender\ui MKDIR ..\..\..\install\msvc_9d\.blender\ui
XCOPY /Y ..\..\release\ui ..\..\..\install\msvc_9d\.blender\ui /E
ECHO Copying manuals/text
XCOPY/Y ..\..\release\text ..\..\..\install\msvc_9d /E
ECHO Done
"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
|
@ -119,7 +119,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\lib\windows\ffmpeg\include\msvc;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern;..\..\..\extern\lzo\minilzo;..\..\..\extern\lzma;..\..\..\source\blender\blenfont;..\..\..\source\blender\ikplugin"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_OPENEXR;WITH_DDS;WITH_BULLET;WITH_FFMPEG"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_OPENEXR;WITH_DDS;WITH_BULLET;WITH_FFMPEG;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="true"
|
||||
@ -195,7 +195,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\lib\windows\ffmpeg\include\msvc;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern;..\..\..\extern\lzo\minilzo;..\..\..\extern\lzma;..\..\..\source\blender\blenfont;..\..\..\source\blender\ikplugin"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_OPENEXR;WITH_DDS;WITH_BULLET=1;WITH_FFMPEG"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_OPENEXR;WITH_DDS;WITH_BULLET=1;WITH_FFMPEG;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
@ -345,7 +345,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\lib\windows\ffmpeg\include\msvc;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern;..\..\..\extern\lzo\minilzo;..\..\..\extern\lzma;..\..\..\source\blender\blenfont;..\..\..\source\blender\ikplugin"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_FFMPEG"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_FFMPEG;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="true"
|
||||
@ -420,7 +420,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\lib\windows\ffmpeg\include\msvc;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern;..\..\..\extern\lzo\minilzo;..\..\..\extern\lzma;..\..\..\source\blender\blenfont;..\..\..\source\blender\ikplugin"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_FFMPEG"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_FFMPEG;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
|
@ -479,10 +479,6 @@
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\arithb.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\BLI_cellalloc.c"
|
||||
>
|
||||
@ -575,6 +571,34 @@
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\listbase.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\math_base.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\math_color.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\math_geom.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\math_matrix.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\math_rotation.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\math_vector.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\math_vector_inline.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\intern\noise.c"
|
||||
>
|
||||
@ -624,10 +648,6 @@
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_arithb.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_array.h"
|
||||
>
|
||||
@ -708,6 +728,34 @@
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_linklist.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_math.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_math_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_math_color.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_math_geom.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_math_matrix.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_math_rotation.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_math_vector.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenlib\BLI_memarena.h"
|
||||
>
|
||||
|
@ -695,6 +695,10 @@
|
||||
RelativePath="..\..\..\source\blender\editors\space_node\drawnode.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\editors\space_node\node_buttons.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\editors\space_node\node_draw.c"
|
||||
>
|
||||
|
@ -119,7 +119,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\gpu"
|
||||
PreprocessorDefinitions="_DEBUG,WIN32,_LIB,DWORDS_LITTLEENDIAN"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;DWORDS_LITTLEENDIAN;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="false"
|
||||
@ -195,7 +195,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\gpu"
|
||||
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,DWORDS_LITTLEENDIAN"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;DWORDS_LITTLEENDIAN;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
@ -345,7 +345,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\gpu"
|
||||
PreprocessorDefinitions="_DEBUG,WIN32,_LIB,DWORDS_LITTLEENDIAN"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;DWORDS_LITTLEENDIAN;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="false"
|
||||
@ -420,7 +420,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\gpu"
|
||||
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,DWORDS_LITTLEENDIAN"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;DWORDS_LITTLEENDIAN;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
|
@ -568,6 +568,22 @@
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\imbuf\intern\openexr\openexr_api.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="BlenderPlayer Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="BlenderPlayer Release|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\imbuf\intern\png.c"
|
||||
|
@ -44,7 +44,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\imbuf;..\..\..\source\blender\python;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\blenloader;..\..\..\source\blender\gpu;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\kernel\gen_messaging;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\blender\collada"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;WITH_COLLADA"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;WITH_COLLADA;GLEW_STATIC"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@ -114,7 +114,146 @@
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\imbuf;..\..\..\source\blender\python;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\blenloader;..\..\..\source\blender\gpu;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\kernel\gen_messaging;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\blender\collada"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;WITH_COLLADA"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;WITH_COLLADA;GLEW_STATIC"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="false"
|
||||
UsePrecompiledHeader="0"
|
||||
PrecompiledHeaderFile="..\..\..\..\build\msvc_9\source\blender\render\release\WM_windowmanager.pch"
|
||||
AssemblerListingLocation="..\..\..\..\build\msvc_9\source\blender\windowmanager\release\"
|
||||
ObjectFile="..\..\..\..\build\msvc_9\source\blender\windowmanager\release\"
|
||||
ProgramDataBaseFileName="..\..\..\..\build\msvc_9\source\blender\windowmanager\release\"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="BlenderPlayer Debug|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\imbuf;..\..\..\source\blender\python;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\blenloader;..\..\..\source\blender\gpu;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\kernel\gen_messaging;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\blender\collada"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;GLEW_STATIC"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
PrecompiledHeaderFile="..\..\..\..\build\msvc_9\source\blender\render\debug\WM_windowmanager.pch"
|
||||
AssemblerListingLocation="..\..\..\..\build\msvc_9\source\blender\windowmanager\debug\"
|
||||
ObjectFile="..\..\..\..\build\msvc_9\source\blender\windowmanager\debug\"
|
||||
ProgramDataBaseFileName="..\..\..\..\build\msvc_9\source\blender\windowmanager\debug\"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="BlenderPlayer Release|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\imbuf;..\..\..\source\blender\python;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\blenloader;..\..\..\source\blender\gpu;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\kernel\gen_messaging;..\..\..\source\blender\windowmanager;..\..\..\source\blender\editors\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\blender\collada"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;GLEW_STATIC"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="false"
|
||||
|
@ -44,7 +44,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\ketsji;..\..\..\source\gameengine\network;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\Physics\Sumo;..\..\..\source\gameengine\Physics\common;..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenfont;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="WIN32;_LIB;_DEBUG;WITH_GLEXT;WITH_FFMPEG"
|
||||
PreprocessorDefinitions="WIN32;_LIB;_DEBUG;WITH_GLEXT;WITH_FFMPEG;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="true"
|
||||
@ -121,7 +121,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\ketsji;..\..\..\source\gameengine\network;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\Physics\Sumo;..\..\..\source\gameengine\Physics\common;..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenfont;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT;WITH_FFMPEG"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT;WITH_FFMPEG;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
BasicRuntimeChecks="0"
|
||||
RuntimeLibrary="0"
|
||||
|
@ -43,7 +43,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -119,7 +119,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
@ -195,7 +195,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@ -270,7 +270,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
@ -346,7 +346,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@ -421,7 +421,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern;..\..\..\source\blender\ikplugin"
|
||||
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
|
@ -342,10 +342,6 @@
|
||||
RelativePath="..\..\..\..\source\gameengine\GamePlayer\common\GPC_MouseDevice.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\source\gameengine\GamePlayer\common\GPC_PolygonMaterial.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\source\gameengine\GamePlayer\common\GPC_RawImage.cpp"
|
||||
>
|
||||
|
@ -44,7 +44,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\intern\openal\include;..\..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\..\build\msvc_9\intern\SoundSystem\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\source\blender\include;..\..\..\..\source\blender\imbuf;..\..\..\..\source\blender\blenlib;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenloader;..\..\..\..\source\blender\readblenfile;..\..\..\..\source\blender\render\extern\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\kernel\gen_messaging;..\..\..\..\source\gameengine\ketsji;..\..\..\..\source\gameengine\Physics;..\..\..\..\source\gameengine\network;..\..\..\..\source\gameengine\rasterizer;..\..\..\..\source\gameengine\converter;..\..\..\..\source\gameengine\gamelogic;..\..\..\..\source\gameengine\expressions;..\..\..\..\source\gameengine\scenegraph;..\..\..\..\source\gameengine\Physics\Ode;..\..\..\..\source\gameengine\soundsystem;..\..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\..\source\gameengine\gameplayer\common;..\..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\..\source\gameengine\gameplayer\common\windows;..\..\..\..\source\sumo\include;..\..\..\..\source\sumo\fuzzics\include;..\..\..\..\source\blender\gpu;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\intern\openal\include;..\..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\..\build\msvc_9\intern\SoundSystem\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\source\blender\include;..\..\..\..\source\blender\imbuf;..\..\..\..\source\blender\blenlib;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\makesrna;..\..\..\..\source\blender\blenloader;..\..\..\..\source\blender\readblenfile;..\..\..\..\source\blender\render\extern\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\kernel\gen_messaging;..\..\..\..\source\gameengine\ketsji;..\..\..\..\source\gameengine\Physics;..\..\..\..\source\gameengine\network;..\..\..\..\source\gameengine\rasterizer;..\..\..\..\source\gameengine\converter;..\..\..\..\source\gameengine\gamelogic;..\..\..\..\source\gameengine\expressions;..\..\..\..\source\gameengine\scenegraph;..\..\..\..\source\gameengine\Physics\Ode;..\..\..\..\source\gameengine\soundsystem;..\..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\..\source\gameengine\gameplayer\common;..\..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\..\source\gameengine\gameplayer\common\windows;..\..\..\..\source\sumo\include;..\..\..\..\source\sumo\fuzzics\include;..\..\..\..\source\blender\gpu;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"
|
||||
PreprocessorDefinitions="WIN32,_CONSOLE,dSINGLE, _DEBUG;WITH_FFMPEG"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@ -72,12 +72,12 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386
"
|
||||
AdditionalDependencies="ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib OpenAL32.lib wrap_oal.lib libjpeg.lib dxguid.lib libeay32.lib libpng.lib libz.lib qtmlClient.lib SDL.lib freetype2ST.lib python31_d.lib pthreadVSE2.lib pthreadVC2.lib Half_d.lib Iex_d.lib IlmImf_d.lib IlmThread_d.lib Imath_d.lib avcodec-52.lib avformat-52.lib avutil-50.lib swscale-0.lib avdevice-52.lib"
|
||||
AdditionalDependencies="libsamplerate.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib OpenAL32.lib wrap_oal.lib libjpeg.lib dxguid.lib libeay32.lib libpng_st.lib libz.lib qtmlClient.lib SDL.lib freetype2ST.lib python31_d.lib pthreadVSE2.lib pthreadVC2.lib Half_d.lib Iex_d.lib IlmImf_d.lib IlmThread_d.lib Imath_d.lib avcodec-52.lib avformat-52.lib avutil-50.lib swscale-0.lib avdevice-52.lib"
|
||||
ShowProgress="0"
|
||||
OutputFile="..\..\..\..\bin\debug\blenderplayer.exe"
|
||||
OutputFile="..\..\..\..\..\install\msvc_9d\blenderplayer.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="..\..\..\..\..\lib\windows\sdl\lib;..\..\..\..\..\lib\windows\zlib\lib;..\..\..\..\..\lib\windows\ode\lib;..\..\..\..\..\lib\windows\png\lib;..\..\..\..\..\lib\windows\jpeg\lib;..\..\..\..\..\lib\windows\fmod\lib;..\..\..\..\..\lib\windows\openal\lib;..\..\..\..\..\lib\windows\freetype\lib;..\..\..\..\..\lib\windows\openexr\lib_vs2008;..\..\..\..\..\lib\windows\python\lib;..\..\..\..\..\lib\windows\openssl\lib;..\..\..\..\..\lib\windows\QTDevWin\Libraries;..\..\..\..\..\lib\windows\pthreads\lib;..\..\..\..\..\lib\windows\ffmpeg\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\..\..\lib\windows\sdl\lib;..\..\..\..\..\lib\windows\zlib\lib;..\..\..\..\..\lib\windows\ode\lib;..\..\..\..\..\lib\windows\png\lib;..\..\..\..\..\lib\windows\jpeg\lib;..\..\..\..\..\lib\windows\fmod\lib;..\..\..\..\..\lib\windows\openal\lib;..\..\..\..\..\lib\windows\freetype\lib;..\..\..\..\..\lib\windows\openexr\lib_vs2008;..\..\..\..\..\lib\windows\python\lib;..\..\..\..\..\lib\windows\openssl\lib;..\..\..\..\..\lib\windows\QTDevWin\Libraries;..\..\..\..\..\lib\windows\pthreads\lib;..\..\..\..\..\lib\windows\ffmpeg\lib;..\..\..\..\..\lib\windows\samplerate\lib"
|
||||
IgnoreDefaultLibraryNames="libc.lib;libcmt.lib;msvcrt.lib;libcd.lib;msvcrtd.lib"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="..\..\..\..\..\build\msvc_9\libs\debug\blenderplayer.pdb"
|
||||
@ -105,7 +105,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="ECHO Moving libraries and export definitions...
MOVE /Y ..\..\..\..\bin\debug\blenderplayer.lib ..\..\..\..\..\build\msvc_9\libs\debug
MOVE /Y ..\..\..\..\bin\debug\blenderplayer.exp ..\..\..\..\..\build\msvc_9\libs\debug
MOVE /Y ..\..\..\..\bin\debug\blenderplayer.ilk ..\..\..\..\..\build\msvc_9\libs\debug
ECHO Copying required 3rd party dlls...
XCOPY /Y ..\..\..\..\..\lib\windows\python\lib\python31_d.dll ..\..\..\..\bin\debug
XCOPY /Y ..\..\..\..\..\lib\windows\sdl\lib\SDL.dll ..\..\..\..\bin\debug
XCOPY /Y ..\..\..\..\..\lib\windows\png\lib\libpng.dll ..\..\..\..\bin\debug
XCOPY /Y ..\..\..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\..\bin\debug
XCOPY /Y ..\..\..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\..\bin\debug
XCOPY /Y ..\..\..\..\..\lib\windows\CRTL\lib\msvcrtd.dll ..\..\..\..\bin\debug
ECHO Done
"
|
||||
CommandLine="ECHO Copying required 3rd party dlls...
XCOPY /Y ..\..\..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\..\..\lib\windows\python\lib\python31_d.dll ..\..\..\..\..\install\msvc_9d
COPY /Y ..\..\..\..\..\lib\windows\release\python31.zip ..\..\..\..\..\install\msvc_9d\python31_d.zip
XCOPY /Y ..\..\..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\..\..\lib\windows\CRTL\lib\msvcrtd.dll ..\..\..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\..\..\install\msvc_9d
XCOPY /Y ..\..\..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\..\..\install\msvc_9d
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
@ -138,7 +138,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\intern\openal\include;..\..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\..\build\msvc_9\intern\SoundSystem\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\source\blender\include;..\..\..\..\source\blender\imbuf;..\..\..\..\source\blender\blenlib;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenloader;..\..\..\..\source\blender\readblenfile;..\..\..\..\source\blender\render\extern\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\kernel\gen_messaging;..\..\..\..\source\gameengine\ketsji;..\..\..\..\source\gameengine\Physics;..\..\..\..\source\gameengine\network;..\..\..\..\source\gameengine\rasterizer;..\..\..\..\source\gameengine\converter;..\..\..\..\source\gameengine\gamelogic;..\..\..\..\source\gameengine\expressions;..\..\..\..\source\gameengine\scenegraph;..\..\..\..\source\gameengine\Physics\Ode;..\..\..\..\source\gameengine\soundsystem;..\..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\..\source\gameengine\gameplayer\common;..\..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\..\source\gameengine\gameplayer\common\windows;..\..\..\..\source\sumo\include;..\..\..\..\source\sumo\fuzzics\include;..\..\..\..\source\blender\gpu;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\intern\openal\include;..\..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\..\build\msvc_9\intern\SoundSystem\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\source\blender\include;..\..\..\..\source\blender\imbuf;..\..\..\..\source\blender\blenlib;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\makesrna;..\..\..\..\source\blender\blenloader;..\..\..\..\source\blender\readblenfile;..\..\..\..\source\blender\render\extern\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\kernel\gen_messaging;..\..\..\..\source\gameengine\ketsji;..\..\..\..\source\gameengine\Physics;..\..\..\..\source\gameengine\network;..\..\..\..\source\gameengine\rasterizer;..\..\..\..\source\gameengine\converter;..\..\..\..\source\gameengine\gamelogic;..\..\..\..\source\gameengine\expressions;..\..\..\..\source\gameengine\scenegraph;..\..\..\..\source\gameengine\Physics\Ode;..\..\..\..\source\gameengine\soundsystem;..\..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\..\source\gameengine\gameplayer\common;..\..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\source\gameengine\network\loopbacknetwork;..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\..\source\gameengine\gameplayer\common\windows;..\..\..\..\source\sumo\include;..\..\..\..\source\sumo\fuzzics\include;..\..\..\..\source\blender\gpu;..\..\..\..\..\build\msvc_9\intern\guardedalloc\include"
|
||||
PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE;WITH_FFMPEG"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
@ -167,11 +167,11 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="odelib.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib OpenAL32.lib wrap_oal.lib libjpeg.lib dxguid.lib libeay32.lib libpng.lib libz.lib qtmlClient.lib SDL.lib freetype2ST.lib python31.lib pthreadVSE2.lib pthreadVC2.lib Half.lib Iex.lib IlmImf.lib IlmThread.lib Imath.lib avcodec-52.lib avformat-52.lib avutil-50.lib swscale-0.lib avdevice-52.lib"
|
||||
OutputFile="..\..\..\..\bin\blenderplayer.exe"
|
||||
AdditionalDependencies="libsamplerate.lib odelib.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib OpenAL32.lib wrap_oal.lib libjpeg.lib dxguid.lib libeay32.lib libpng_st.lib libz.lib qtmlClient.lib SDL.lib freetype2ST.lib python31.lib pthreadVSE2.lib pthreadVC2.lib Half.lib Iex.lib IlmImf.lib IlmThread.lib Imath.lib avcodec-52.lib avformat-52.lib avutil-50.lib swscale-0.lib avdevice-52.lib"
|
||||
OutputFile="..\..\..\..\..\install\msvc_9\blenderplayer.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="..\..\..\..\..\lib\windows\sdl\lib;..\..\..\..\..\lib\windows\zlib\lib;..\..\..\..\..\lib\windows\ode\lib;..\..\..\..\..\lib\windows\png\lib;..\..\..\..\..\lib\windows\jpeg\lib;..\..\..\..\..\lib\windows\fmod\lib;..\..\..\..\..\lib\windows\openal\lib;..\..\..\..\..\lib\windows\freetype\lib;..\..\..\..\..\lib\windows\openexr\lib_vs2008;..\..\..\..\..\lib\windows\python\lib;..\..\..\..\..\lib\windows\openssl\lib;..\..\..\..\..\lib\windows\QTDevWin\Libraries;..\..\..\..\..\lib\windows\pthreads\lib;..\..\..\..\..\lib\windows\ffmpeg\lib"
|
||||
AdditionalLibraryDirectories="..\..\..\..\..\lib\windows\sdl\lib;..\..\..\..\..\lib\windows\zlib\lib;..\..\..\..\..\lib\windows\ode\lib;..\..\..\..\..\lib\windows\png\lib;..\..\..\..\..\lib\windows\jpeg\lib;..\..\..\..\..\lib\windows\fmod\lib;..\..\..\..\..\lib\windows\openal\lib;..\..\..\..\..\lib\windows\freetype\lib;..\..\..\..\..\lib\windows\openexr\lib_vs2008;..\..\..\..\..\lib\windows\python\lib;..\..\..\..\..\lib\windows\openssl\lib;..\..\..\..\..\lib\windows\QTDevWin\Libraries;..\..\..\..\..\lib\windows\pthreads\lib;..\..\..\..\..\lib\windows\ffmpeg\lib;..\..\..\..\..\lib\windows\samplerate\lib"
|
||||
IgnoreDefaultLibraryNames="libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="..\..\..\..\..\build\msvc_9\libs\blenderplayer.pdb"
|
||||
@ -199,7 +199,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="ECHO Moving libraries and export definitions...
MOVE /Y ..\..\..\..\bin\blenderplayer.lib ..\..\..\..\..\build\msvc_9\libs
MOVE /Y ..\..\..\..\bin\blenderplayer.exp ..\..\..\..\..\build\msvc_9\libs
ECHO Copying required 3rd party dlls...
XCOPY /Y ..\..\..\..\..\lib\windows\python\lib\python31.dll ..\..\..\..\bin
XCOPY /Y ..\..\..\..\..\lib\windows\sdl\lib\SDL.dll ..\..\..\..\bin
XCOPY /Y ..\..\..\..\..\lib\windows\png\lib\libpng.dll ..\..\..\..\bin
XCOPY /Y ..\..\..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\..\bin
XCOPY /Y ..\..\..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\..\bin
ECHO Done
"
|
||||
CommandLine="ECHO Copying required 3rd party dlls...
XCOPY /Y ..\..\..\..\..\lib\windows\gettext\lib\*.dll ..\..\..\..\..\install\msvc_9
XCOPY /Y ..\..\..\..\..\lib\windows\sdl\lib\*.dll ..\..\..\..\..\install\msvc_9
XCOPY /Y ..\..\..\..\..\lib\windows\python\lib\python31.dll ..\..\..\..\..\install\msvc_9
XCOPY /Y ..\..\..\..\..\lib\windows\release\python31.zip ..\..\..\..\..\install\msvc_9
XCOPY /Y ..\..\..\..\..\lib\windows\zlib\lib\zlib.dll ..\..\..\..\..\install\msvc_9
XCOPY /Y ..\..\..\..\..\lib\windows\openal\lib\wrap_oal.dll ..\..\..\..\..\install\msvc_9
XCOPY /Y ..\..\..\..\..\lib\windows\openal\lib\OpenAL32.dll ..\..\..\..\..\install\msvc_9
XCOPY /Y ..\..\..\..\..\lib\windows\tiff\lib\*.dll ..\..\..\..\..\install\msvc_9
XCOPY /Y ..\..\..\..\..\lib\windows\pthreads\lib\pthreadVSE2.dll ..\..\..\..\..\install\msvc_9
XCOPY /Y ..\..\..\..\..\lib\windows\ffmpeg\lib\*.dll ..\..\..\..\..\install\msvc_9
XCOPY /Y ..\..\..\..\..\lib\windows\sndfile\lib\*.dll ..\..\..\..\..\install\msvc_9
ECHO Done
"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
@ -234,6 +234,10 @@
|
||||
RelativePath="..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_System.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\source\blenderplayer\bad_level_call_stubs\stubs.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\source\icons\winplayer.rc"
|
||||
>
|
||||
|
@ -43,7 +43,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
@ -119,7 +119,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@ -194,8 +194,8 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="true"
|
||||
@ -271,8 +271,8 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
@ -347,8 +347,8 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="true"
|
||||
@ -423,8 +423,8 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenloader;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
|
@ -44,7 +44,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="true"
|
||||
@ -195,7 +195,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
@ -345,7 +345,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="true"
|
||||
@ -420,7 +420,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
|
@ -119,7 +119,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\gameengine\Rasterizer;..\..\..\..\source\gameengine\SceneGraph;..\..\..\..\source\blender\gpu;..\..\..\..\source\gameengine\Ketsji;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\blenlib"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="true"
|
||||
@ -270,7 +270,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\gameengine\Rasterizer;..\..\..\..\source\gameengine\SceneGraph;..\..\..\..\source\blender\gpu;..\..\..\..\source\gameengine\Ketsji;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\blenlib"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
@ -345,7 +345,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\gameengine\Rasterizer;..\..\..\..\source\gameengine\SceneGraph;..\..\..\..\source\blender\gpu;..\..\..\..\source\gameengine\Ketsji;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\blenlib"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
DefaultCharIsUnsigned="true"
|
||||
@ -420,7 +420,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\source\kernel\gen_system;..\..\..\..\source\gameengine\Rasterizer;..\..\..\..\source\gameengine\SceneGraph;..\..\..\..\source\blender\gpu;..\..\..\..\source\gameengine\Ketsji;..\..\..\..\source\blender\makesdna;..\..\..\..\source\blender\blenkernel;..\..\..\..\source\blender\blenlib"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -131,7 +131,8 @@ void blf_glyph_cache_free(GlyphCacheBLF *gc)
|
||||
}
|
||||
}
|
||||
|
||||
glDeleteTextures(gc->cur_tex+1, gc->textures);
|
||||
if (gc->cur_tex+1 > 0)
|
||||
glDeleteTextures(gc->cur_tex+1, gc->textures);
|
||||
free((void *)gc->textures);
|
||||
MEM_freeN(gc);
|
||||
}
|
||||
|
@ -95,6 +95,7 @@ struct Object;
|
||||
struct Scene;
|
||||
struct Mesh;
|
||||
struct BMEditMesh;
|
||||
struct KeyBlock;
|
||||
struct ModifierData;
|
||||
struct MCol;
|
||||
struct ColorBand;
|
||||
@ -432,6 +433,10 @@ int DM_release(DerivedMesh *dm);
|
||||
*/
|
||||
void DM_to_mesh(DerivedMesh *dm, struct Mesh *me);
|
||||
|
||||
/* utility function to convert a DerivedMesh to a shape key block
|
||||
*/
|
||||
void DM_to_meshkey(DerivedMesh *dm, struct Mesh *me, struct KeyBlock *kb);
|
||||
|
||||
/* set the CD_FLAG_NOCOPY flag in custom data layers where the mask is
|
||||
* zero for the layer type, so only layer types specified by the mask
|
||||
* will be copied
|
||||
|
@ -117,6 +117,12 @@ struct bActionGroup *action_groups_find_named(struct bAction *act, const char na
|
||||
|
||||
/* Pose API ----------------- */
|
||||
|
||||
/**
|
||||
* Deallocates a pose channel.
|
||||
* Does not free the pose channel itself.
|
||||
*/
|
||||
void free_pose_channel(struct bPoseChannel *pchan);
|
||||
|
||||
/**
|
||||
* Removes and deallocates all channels from a pose.
|
||||
* Does not free the pose itself.
|
||||
|
@ -108,7 +108,6 @@ bConstraintTypeInfo *get_constraint_typeinfo(int type);
|
||||
/* Constraint Target Macros */
|
||||
#define VALID_CONS_TARGET(ct) ((ct) && (ct->tar))
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
|
||||
/* Constraint function prototypes */
|
||||
@ -119,7 +118,15 @@ void copy_constraints(struct ListBase *dst, struct ListBase *src);
|
||||
void relink_constraints(struct ListBase *list);
|
||||
void free_constraint_data(struct bConstraint *con);
|
||||
|
||||
/* Constraint API function prototypes */
|
||||
struct bConstraint *constraints_get_active(struct ListBase *list);
|
||||
void constraints_set_active(ListBase *list, struct bConstraint *con);
|
||||
|
||||
struct bConstraint *add_ob_constraint(struct Object *ob, const char *name, short type);
|
||||
struct bConstraint *add_pose_constraint(struct Object *ob, struct bPoseChannel *pchan, const char *name, short type);
|
||||
|
||||
int remove_constraint(ListBase *list, struct bConstraint *con);
|
||||
int remove_constraint_index(ListBase *list, int index);
|
||||
|
||||
/* Constraints + Proxies function prototypes */
|
||||
void extract_proxylocal_constraints(struct ListBase *dst, struct ListBase *src);
|
||||
|
@ -34,6 +34,7 @@ struct ChannelDriver;
|
||||
struct DriverTarget;
|
||||
|
||||
struct BezTriple;
|
||||
struct StructRNA;
|
||||
|
||||
#include "DNA_curve_types.h"
|
||||
|
||||
@ -129,7 +130,8 @@ FModifierTypeInfo *get_fmodifier_typeinfo(int type);
|
||||
|
||||
struct FModifier *add_fmodifier(ListBase *modifiers, int type);
|
||||
void copy_fmodifiers(ListBase *dst, ListBase *src);
|
||||
void remove_fmodifier(ListBase *modifiers, struct FModifier *fcm);
|
||||
int remove_fmodifier(ListBase *modifiers, struct FModifier *fcm);
|
||||
int remove_fmodifier_index(ListBase *modifiers, int index);
|
||||
void free_fmodifiers(ListBase *modifiers);
|
||||
|
||||
struct FModifier *find_active_fmodifier(ListBase *modifiers);
|
||||
@ -155,6 +157,9 @@ void copy_fcurves(ListBase *dst, ListBase *src);
|
||||
/* find matching F-Curve in the given list of F-Curves */
|
||||
struct FCurve *list_find_fcurve(ListBase *list, const char rna_path[], const int array_index);
|
||||
|
||||
/* high level function to get an fcurve from C without having the rna */
|
||||
struct FCurve *id_data_find_fcurve(ID* id, void *data, struct StructRNA *type, char *prop_name, int index);
|
||||
|
||||
/* Binary search algorithm for finding where to 'insert' BezTriple with given frame number.
|
||||
* Returns the index to insert at (data already at that index will be offset if replace is 0)
|
||||
*/
|
||||
|
@ -42,8 +42,8 @@ void free_group(struct Group *group);
|
||||
void unlink_group(struct Group *group);
|
||||
struct Group *add_group(char *name);
|
||||
struct Group *copy_group(struct Group *group);
|
||||
void add_to_group(struct Group *group, struct Object *ob);
|
||||
int rem_from_group(struct Group *group, struct Object *ob);
|
||||
int add_to_group(struct Group *group, struct Object *ob, struct Scene *scene, struct Base *base);
|
||||
int rem_from_group(struct Group *group, struct Object *ob, struct Scene *scene, struct Base *base);
|
||||
struct Group *find_group(struct Object *ob, struct Group *group);
|
||||
int object_in_group(struct Object *ob, struct Group *group);
|
||||
int group_is_animated(struct Object *parent, struct Group *group);
|
||||
|
@ -117,7 +117,7 @@ int IDP_InsertToGroup(struct IDProperty *group, struct IDProperty *previous,
|
||||
*/
|
||||
void IDP_RemFromGroup(struct IDProperty *group, struct IDProperty *prop);
|
||||
|
||||
IDProperty *IDP_GetPropertyFromGroup(struct IDProperty *prop, char *name);
|
||||
IDProperty *IDP_GetPropertyFromGroup(struct IDProperty *prop, const char *name);
|
||||
|
||||
/*Get an iterator to iterate over the members of an id property group.
|
||||
Note that this will automatically free the iterator once iteration is complete;
|
||||
|
@ -61,7 +61,9 @@ void key_curve_normal_weights(float t, float *data, int type);
|
||||
float *do_ob_key(struct Scene *scene, struct Object *ob);
|
||||
|
||||
struct Key *ob_get_key(struct Object *ob);
|
||||
struct KeyBlock *add_keyblock(struct Scene *scene, struct Key *key);
|
||||
struct KeyBlock *ob_get_keyblock(struct Object *ob);
|
||||
struct KeyBlock *ob_get_reference_keyblock(struct Object *ob);
|
||||
struct KeyBlock *key_get_keyblock(struct Key *key, int index);
|
||||
struct KeyBlock *key_get_named_keyblock(struct Key *key, const char name[]);
|
||||
char *key_get_curValue_rnaPath(struct Key *key, struct KeyBlock *kb);
|
||||
|
@ -282,6 +282,7 @@ int modifier_dependsOnTime(struct ModifierData *md);
|
||||
int modifier_supportsMapping(struct ModifierData *md);
|
||||
int modifier_couldBeCage(struct ModifierData *md);
|
||||
int modifier_isDeformer(struct ModifierData *md);
|
||||
int modifier_sameTopology(ModifierData *md);
|
||||
int modifier_isEnabled(struct ModifierData *md, int required_mode);
|
||||
void modifier_setError(struct ModifierData *md, char *format, ...);
|
||||
|
||||
|
@ -162,6 +162,7 @@ void nodeVerifyType(struct bNodeTree *ntree, struct bNode *node);
|
||||
void nodeAddToPreview(struct bNode *, float *, int, int);
|
||||
|
||||
void nodeUnlinkNode(struct bNodeTree *ntree, struct bNode *node);
|
||||
void nodeUniqueName(struct bNodeTree *ntree, struct bNode *node);
|
||||
void nodeAddSockets(struct bNode *node, struct bNodeType *ntype);
|
||||
struct bNode *nodeAddNodeType(struct bNodeTree *ntree, int type, struct bNodeTree *ngroup, struct ID *id);
|
||||
void nodeRegisterType(struct ListBase *typelist, const struct bNodeType *ntype) ;
|
||||
|
@ -69,6 +69,9 @@ typedef struct SculptSession {
|
||||
int totvert, totface;
|
||||
float *face_normals;
|
||||
|
||||
struct Object *ob;
|
||||
struct KeyBlock *kb, *refkb;
|
||||
|
||||
/* Mesh connectivity */
|
||||
struct ListBase *fmap;
|
||||
struct IndexNode *fmap_mem;
|
||||
|
@ -163,7 +163,7 @@ void update_changed_seq_and_deps(struct Scene *scene, struct Sequence *changed_s
|
||||
/* seqeffects.c */
|
||||
// intern?
|
||||
struct SeqEffectHandle get_sequence_blend(struct Sequence *seq);
|
||||
void sequence_effect_speed_rebuild_map(struct Sequence *seq, int force);
|
||||
void sequence_effect_speed_rebuild_map(struct Scene *scene, struct Sequence *seq, int force);
|
||||
|
||||
// extern
|
||||
struct SeqEffectHandle get_sequence_effect(struct Sequence *seq);
|
||||
@ -183,10 +183,44 @@ void fix_single_seq(struct Sequence *seq);
|
||||
int seq_test_overlap(struct ListBase * seqbasep, struct Sequence *test);
|
||||
int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test);
|
||||
int shuffle_seq_time(ListBase * seqbasep);
|
||||
void free_imbuf_seq(struct ListBase * seqbasep, int check_mem_usage);
|
||||
void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage);
|
||||
|
||||
void seq_update_sound(struct Sequence *seq);
|
||||
|
||||
void clear_scene_in_allseqs(struct Scene *sce);
|
||||
|
||||
struct Sequence *active_seq_get(struct Scene *scene);
|
||||
void active_seq_set(struct Scene *scene, struct Sequence *seq);
|
||||
|
||||
/* api for adding new sequence strips */
|
||||
typedef struct SeqLoadInfo {
|
||||
int start_frame;
|
||||
int channel;
|
||||
int flag; /* use sound, replace sel */
|
||||
int type;
|
||||
int tot_success;
|
||||
int tot_error;
|
||||
int len; /* only for image strips */
|
||||
char path[512];
|
||||
char name[32];
|
||||
} SeqLoadInfo;
|
||||
|
||||
/* SeqLoadInfo.flag */
|
||||
#define SEQ_LOAD_REPLACE_SEL 1<<0
|
||||
#define SEQ_LOAD_FRAME_ADVANCE 1<<1
|
||||
#define SEQ_LOAD_MOVIE_SOUND 1<<2
|
||||
#define SEQ_LOAD_SOUND_CACHE 1<<3
|
||||
|
||||
/* use as an api function */
|
||||
typedef struct Sequence *(*SeqLoadFunc)(struct bContext *, ListBase *, struct SeqLoadInfo *);
|
||||
|
||||
struct Sequence *alloc_sequence(ListBase *lb, int cfra, int machine);
|
||||
|
||||
void seq_load_apply(struct Scene *scene, struct Sequence *seq, struct SeqLoadInfo *seq_load);
|
||||
|
||||
void seqUniqueName(ListBase *seqbasep, struct Sequence *seq);
|
||||
|
||||
struct Sequence *sequencer_add_image_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load);
|
||||
struct Sequence *sequencer_add_sound_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load);
|
||||
struct Sequence *sequencer_add_movie_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load);
|
||||
|
||||
|
@ -68,5 +68,8 @@ extern void sbObjectToSoftbody(struct Object *ob);
|
||||
/* pass NULL to unlink again */
|
||||
extern void sbSetInterruptCallBack(int (*f)(void));
|
||||
|
||||
extern void SB_estimate_transform(Object *ob,float lloc[3],float lrot[3][3],float lscale[3][3]);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
#ifndef _BKE_TESSMESH_H
|
||||
#define _BKE_TESSMESH_H
|
||||
|
||||
#include "bmesh.h"
|
||||
|
||||
struct BMesh;
|
||||
@ -61,3 +64,5 @@ BMEditMesh *BMEdit_Create(BMesh *bm);
|
||||
BMEditMesh *BMEdit_Copy(BMEditMesh *tm);
|
||||
void BMEdit_Free(BMEditMesh *em);
|
||||
void BMEdit_UpdateLinkedCustomData(BMEditMesh *em);
|
||||
|
||||
#endif /* _BKE_TESSMESH_H */
|
@ -37,6 +37,8 @@ SET(INC
|
||||
${ZLIB_INC}
|
||||
)
|
||||
|
||||
ADD_DEFINITIONS(-DGLEW_STATIC)
|
||||
|
||||
IF(WITH_BULLET)
|
||||
SET(INC ${INC} ../../../extern/bullet2/src)
|
||||
ADD_DEFINITIONS(-DUSE_BULLET)
|
||||
|
@ -17,7 +17,7 @@ incs += ' #/intern/audaspace/intern'
|
||||
incs += ' ' + env['BF_OPENGL_INC']
|
||||
incs += ' ' + env['BF_ZLIB_INC']
|
||||
|
||||
defs = []
|
||||
defs = [ 'GLEW_STATIC' ]
|
||||
|
||||
if not env['WITH_BF_PYTHON']:
|
||||
defs.append('DISABLE_PYTHON')
|
||||
|
@ -3,12 +3,15 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#include <float.h>
|
||||
|
||||
#include "CCGSubSurf.h"
|
||||
|
||||
#include "BLO_sys_types.h" // for intptr_t support
|
||||
|
||||
/* used for normalize_v3 in BLI_math_vector
|
||||
* float.h's FLT_EPSILON causes trouble with subsurf normals - campbell */
|
||||
#define EPSILON (1.0e-35f)
|
||||
|
||||
/***/
|
||||
|
||||
typedef unsigned char byte;
|
||||
@ -593,7 +596,7 @@ void _face_calcIFNo(CCFace *f, int lvl, int S, int x, int y, float *no, int leve
|
||||
|
||||
length = sqrt(no[0]*no[0] + no[1]*no[1] + no[2]*no[2]);
|
||||
|
||||
if (length>FLT_EPSILON) {
|
||||
if (length>EPSILON) {
|
||||
float invLength = 1.f/length;
|
||||
|
||||
no[0] *= invLength;
|
||||
@ -1934,7 +1937,7 @@ static void CCS__sync(CSubSurf *ss) {
|
||||
|
||||
length = sqrt(no[0]*no[0] + no[1]*no[1] + no[2]*no[2]);
|
||||
|
||||
if (length>FLT_EPSILON) {
|
||||
if (length>EPSILON) {
|
||||
float invLength = 1.0f/length;
|
||||
no[0] *= invLength;
|
||||
no[1] *= invLength;
|
||||
@ -1993,7 +1996,7 @@ static void CCS__sync(CSubSurf *ss) {
|
||||
float *no = FACE_getIFNo(f, lvl, S, x, y);
|
||||
float length = sqrt(no[0]*no[0] + no[1]*no[1] + no[2]*no[2]);
|
||||
|
||||
if (length>FLT_EPSILON) {
|
||||
if (length>EPSILON) {
|
||||
float invLength = 1.0f/length;
|
||||
no[0] *= invLength;
|
||||
no[1] *= invLength;
|
||||
|
@ -436,6 +436,26 @@ void DM_to_mesh(DerivedMesh *dm, Mesh *me)
|
||||
*me = tmp;
|
||||
}
|
||||
|
||||
void DM_to_meshkey(DerivedMesh *dm, Mesh *me, KeyBlock *kb)
|
||||
{
|
||||
int a, totvert = dm->getNumVerts(dm);
|
||||
float *fp;
|
||||
MVert *mvert;
|
||||
|
||||
if(totvert==0 || me->totvert==0 || me->totvert!=totvert) return;
|
||||
|
||||
if(kb->data) MEM_freeN(kb->data);
|
||||
kb->data= MEM_callocN(me->key->elemsize*me->totvert, "kb->data");
|
||||
kb->totelem= totvert;
|
||||
|
||||
fp= kb->data;
|
||||
mvert=dm->getVertDataArray(dm, CD_MVERT);
|
||||
|
||||
for(a=0; a<kb->totelem; a++, fp+=3, mvert++) {
|
||||
VECCOPY(fp, mvert->co);
|
||||
}
|
||||
}
|
||||
|
||||
void DM_set_only_copy(DerivedMesh *dm, CustomDataMask mask)
|
||||
{
|
||||
CustomData_set_only_copy(&dm->vertData, mask);
|
||||
|
@ -62,6 +62,8 @@
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_object.h"
|
||||
#include "BKE_utildefines.h"
|
||||
#include "BKE_idprop.h"
|
||||
|
||||
#include "BIK_api.h"
|
||||
|
||||
#include "BLI_math.h"
|
||||
@ -516,18 +518,23 @@ void copy_pose (bPose **dst, bPose *src, int copycon)
|
||||
outPose->ikdata = NULL;
|
||||
outPose->ikparam = MEM_dupallocN(src->ikparam);
|
||||
|
||||
// TODO: rename this argument...
|
||||
if (copycon) {
|
||||
for (pchan=outPose->chanbase.first; pchan; pchan=pchan->next) {
|
||||
for (pchan=outPose->chanbase.first; pchan; pchan=pchan->next) {
|
||||
// TODO: rename this argument...
|
||||
if (copycon) {
|
||||
copy_constraints(&listb, &pchan->constraints); // copy_constraints NULLs listb
|
||||
pchan->constraints= listb;
|
||||
pchan->path= NULL;
|
||||
}
|
||||
|
||||
/* for now, duplicate Bone Groups too when doing this */
|
||||
BLI_duplicatelist(&outPose->agroups, &src->agroups);
|
||||
if(pchan->prop) {
|
||||
pchan->prop= IDP_CopyProperty(pchan->prop);
|
||||
}
|
||||
}
|
||||
|
||||
/* for now, duplicate Bone Groups too when doing this */
|
||||
if(copycon)
|
||||
BLI_duplicatelist(&outPose->agroups, &src->agroups);
|
||||
|
||||
*dst=outPose;
|
||||
}
|
||||
|
||||
@ -564,16 +571,27 @@ void init_pose_ikparam(bPose *pose)
|
||||
}
|
||||
}
|
||||
|
||||
void free_pose_channel(bPoseChannel *pchan)
|
||||
{
|
||||
if (pchan->path)
|
||||
MEM_freeN(pchan->path);
|
||||
|
||||
free_constraints(&pchan->constraints);
|
||||
|
||||
if(pchan->prop) {
|
||||
IDP_FreeProperty(pchan->prop);
|
||||
MEM_freeN(pchan->prop);
|
||||
}
|
||||
}
|
||||
|
||||
void free_pose_channels(bPose *pose)
|
||||
{
|
||||
bPoseChannel *pchan;
|
||||
|
||||
if (pose->chanbase.first) {
|
||||
for (pchan = pose->chanbase.first; pchan; pchan=pchan->next){
|
||||
if (pchan->path)
|
||||
MEM_freeN(pchan->path);
|
||||
free_constraints(&pchan->constraints);
|
||||
}
|
||||
for (pchan = pose->chanbase.first; pchan; pchan=pchan->next)
|
||||
free_pose_channel(pchan);
|
||||
|
||||
BLI_freelistN(&pose->chanbase);
|
||||
}
|
||||
}
|
||||
@ -616,7 +634,7 @@ static void copy_pose_channel_data(bPoseChannel *pchan, const bPoseChannel *chan
|
||||
pchan->flag= chan->flag;
|
||||
|
||||
con= chan->constraints.first;
|
||||
for(pcon= pchan->constraints.first; pcon; pcon= pcon->next, con= con->next) {
|
||||
for(pcon= pchan->constraints.first; pcon && con; pcon= pcon->next, con= con->next) {
|
||||
pcon->enforce= con->enforce;
|
||||
pcon->headtail= con->headtail;
|
||||
}
|
||||
@ -868,7 +886,7 @@ short action_get_item_transforms (bAction *act, Object *ob, bPoseChannel *pchan,
|
||||
|
||||
/* build PointerRNA from provided data to obtain the paths to use */
|
||||
if (pchan)
|
||||
RNA_pointer_create((ID *)ob, &RNA_PoseChannel, pchan, &ptr);
|
||||
RNA_pointer_create((ID *)ob, &RNA_PoseBone, pchan, &ptr);
|
||||
else if (ob)
|
||||
RNA_id_pointer_create((ID *)ob, &ptr);
|
||||
else
|
||||
@ -1046,6 +1064,8 @@ void what_does_obaction (Scene *scene, Object *ob, Object *workob, bPose *pose,
|
||||
workob->parent= ob->parent;
|
||||
workob->track= ob->track;
|
||||
|
||||
workob->rotmode= ob->rotmode;
|
||||
|
||||
workob->trackflag= ob->trackflag;
|
||||
workob->upflag= ob->upflag;
|
||||
|
||||
|
@ -254,14 +254,10 @@ int where_on_path(Object *ob, float ctime, float *vec, float *dir, float *quat,
|
||||
|
||||
key_curve_tangent_weights(1.0f-fac, data, KEY_BSPLINE);
|
||||
|
||||
dir[0]= data[0]*p0->vec[0] + data[1]*p1->vec[0] + data[2]*p2->vec[0] + data[3]*p3->vec[0] ;
|
||||
dir[1]= data[0]*p0->vec[1] + data[1]*p1->vec[1] + data[2]*p2->vec[1] + data[3]*p3->vec[1] ;
|
||||
dir[2]= data[0]*p0->vec[2] + data[1]*p1->vec[2] + data[2]*p2->vec[2] + data[3]*p3->vec[2] ;
|
||||
interp_v3_v3v3v3v3(dir, p0->vec, p1->vec, p2->vec, p3->vec, data);
|
||||
|
||||
/* make compatible with vectoquat */
|
||||
dir[0]= -dir[0];
|
||||
dir[1]= -dir[1];
|
||||
dir[2]= -dir[2];
|
||||
negate_v3(dir);
|
||||
//}
|
||||
|
||||
nu= cu->nurb.first;
|
||||
@ -703,7 +699,7 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
|
||||
if(par->transflag & OB_DUPLIFACES_SCALE) {
|
||||
float size= v4? area_quad_v3(v1, v2, v3, v4): area_tri_v3(v1, v2, v3);
|
||||
size= sqrt(size) * par->dupfacesca;
|
||||
mul_m3_fl(mat[0], size);
|
||||
mul_m3_fl(mat, size);
|
||||
}
|
||||
|
||||
copy_m3_m3(mat3, mat);
|
||||
@ -940,7 +936,7 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p
|
||||
if(part->ren_as==PART_DRAW_GR && psys->part->draw & PART_DRAW_WHOLE_GR) {
|
||||
for(go= part->dup_group->gobject.first, b=0; go; go= go->next, b++) {
|
||||
mul_m4_m4m4(tmat, oblist[b]->obmat, pamat);
|
||||
mul_mat3_m4_fl((float *)tmat, size*scale);
|
||||
mul_mat3_m4_fl(tmat, size*scale);
|
||||
if(par_space_mat)
|
||||
mul_m4_m4m4(mat, tmat, par_space_mat);
|
||||
else
|
||||
@ -962,7 +958,7 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p
|
||||
copy_m4_m4(mat, pamat);
|
||||
|
||||
mul_m4_m4m4(tmat, obmat, mat);
|
||||
mul_mat3_m4_fl((float *)tmat, size*scale);
|
||||
mul_mat3_m4_fl(tmat, size*scale);
|
||||
|
||||
if(part->draw & PART_DRAW_GLOBAL_OB)
|
||||
VECADD(tmat[3], tmat[3], vec);
|
||||
|
@ -353,7 +353,7 @@ static void nlastrips_path_rename_fix (ID *owner_id, char *prefix, char *oldName
|
||||
|
||||
/* Fix all RNA-Paths in the AnimData block used by the given ID block
|
||||
* NOTE: it is assumed that the structure we're replacing is <prefix><["><name><"]>
|
||||
* i.e. pose.pose_channels["Bone"]
|
||||
* i.e. pose.bones["Bone"]
|
||||
*/
|
||||
void BKE_animdata_fix_paths_rename (ID *owner_id, AnimData *adt, char *prefix, char *oldName, char *newName)
|
||||
{
|
||||
@ -388,7 +388,7 @@ void BKE_animdata_fix_paths_rename (ID *owner_id, AnimData *adt, char *prefix, c
|
||||
|
||||
/* Fix all RNA-Paths throughout the database (directly access the Global.main version)
|
||||
* NOTE: it is assumed that the structure we're replacing is <prefix><["><name><"]>
|
||||
* i.e. pose.pose_channels["Bone"]
|
||||
* i.e. pose.bones["Bone"]
|
||||
*/
|
||||
void BKE_all_animdata_fix_paths_rename (char *prefix, char *oldName, char *newName)
|
||||
{
|
||||
|
@ -814,7 +814,7 @@ static void pchan_deform_mat_add(bPoseChannel *pchan, float weight, float bbonem
|
||||
else
|
||||
copy_m3_m4(wmat, pchan->chan_mat);
|
||||
|
||||
mul_m3_fl((float*)wmat, weight);
|
||||
mul_m3_fl(wmat, weight);
|
||||
add_m3_m3m3(mat, mat, wmat);
|
||||
}
|
||||
|
||||
@ -1014,7 +1014,7 @@ void armature_deform_verts(Object *armOb, Object *target, DerivedMesh *dm,
|
||||
vec= sumvec;
|
||||
|
||||
if(defMats) {
|
||||
zero_m3((float*)summat);
|
||||
zero_m3(summat);
|
||||
smat = summat;
|
||||
}
|
||||
}
|
||||
@ -1124,7 +1124,7 @@ void armature_deform_verts(Object *armOb, Object *target, DerivedMesh *dm,
|
||||
copy_m3_m3(tmpmat, defMats[i]);
|
||||
|
||||
if(!use_quaternion) /* quaternion already is scale corrected */
|
||||
mul_m3_fl((float*)smat, armature_weight/contrib);
|
||||
mul_m3_fl(smat, armature_weight/contrib);
|
||||
|
||||
mul_serie_m3(defMats[i], tmpmat, pre, smat, post,
|
||||
NULL, NULL, NULL, NULL);
|
||||
@ -1531,8 +1531,7 @@ static void pose_proxy_synchronize(Object *ob, Object *from, int layer_protected
|
||||
}
|
||||
|
||||
/* free stuff from current channel */
|
||||
if (pchan->path) MEM_freeN(pchan->path);
|
||||
free_constraints(&pchan->constraints);
|
||||
free_pose_channel(pchan);
|
||||
|
||||
/* the final copy */
|
||||
*pchan= pchanw;
|
||||
@ -1587,9 +1586,7 @@ void armature_rebuild_pose(Object *ob, bArmature *arm)
|
||||
for(pchan= pose->chanbase.first; pchan; pchan= next) {
|
||||
next= pchan->next;
|
||||
if(pchan->bone==NULL) {
|
||||
if(pchan->path)
|
||||
MEM_freeN(pchan->path);
|
||||
free_constraints(&pchan->constraints);
|
||||
free_pose_channel(pchan);
|
||||
BLI_freelinkN(&pose->chanbase, pchan);
|
||||
}
|
||||
}
|
||||
@ -1633,7 +1630,7 @@ typedef struct tSplineIK_Tree {
|
||||
/* ----------- */
|
||||
|
||||
/* Tag the bones in the chain formed by the given bone for IK */
|
||||
static void splineik_init_tree_from_pchan(Object *ob, bPoseChannel *pchan_tip)
|
||||
static void splineik_init_tree_from_pchan(Scene *scene, Object *ob, bPoseChannel *pchan_tip)
|
||||
{
|
||||
bPoseChannel *pchan, *pchanRoot=NULL;
|
||||
bPoseChannel *pchanChain[255];
|
||||
@ -1663,6 +1660,21 @@ static void splineik_init_tree_from_pchan(Object *ob, bPoseChannel *pchan_tip)
|
||||
if (con == NULL)
|
||||
return;
|
||||
|
||||
/* make sure that the constraint targets are ok
|
||||
* - this is a workaround for a depsgraph bug...
|
||||
*/
|
||||
if (ikData->tar) {
|
||||
Curve *cu= ikData->tar->data;
|
||||
|
||||
/* note: when creating constraints that follow path, the curve gets the CU_PATH set now,
|
||||
* currently for paths to work it needs to go through the bevlist/displist system (ton)
|
||||
*/
|
||||
|
||||
/* only happens on reload file, but violates depsgraph still... fix! */
|
||||
if ((cu->path==NULL) || (cu->path->data==NULL))
|
||||
makeDispListCurveTypes(scene, ikData->tar, 0);
|
||||
}
|
||||
|
||||
/* find the root bone and the chain of bones from the root to the tip
|
||||
* NOTE: this assumes that the bones are connected, but that may not be true...
|
||||
*/
|
||||
@ -1708,7 +1720,7 @@ static void splineik_init_tree_from_pchan(Object *ob, bPoseChannel *pchan_tip)
|
||||
*/
|
||||
if ((ikData->flag & CONSTRAINT_SPLINEIK_EVENSPLITS) || (totLength == 0.0f)) {
|
||||
/* 1) equi-spaced joints */
|
||||
ikData->points[i]= segmentLen;
|
||||
ikData->points[i]= ikData->points[i-1] - segmentLen;
|
||||
}
|
||||
else {
|
||||
/* 2) to find this point on the curve, we take a step from the previous joint
|
||||
@ -1801,7 +1813,7 @@ static void splineik_init_tree(Scene *scene, Object *ob, float ctime)
|
||||
/* find the tips of Spline IK chains, which are simply the bones which have been tagged as such */
|
||||
for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
|
||||
if (pchan->constflag & PCHAN_HAS_SPLINEIK)
|
||||
splineik_init_tree_from_pchan(ob, pchan);
|
||||
splineik_init_tree_from_pchan(scene, ob, pchan);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1812,9 +1824,7 @@ static void splineik_evaluate_bone(tSplineIK_Tree *tree, Scene *scene, Object *o
|
||||
{
|
||||
bSplineIKConstraint *ikData= tree->ikData;
|
||||
float poseHead[3], poseTail[3], poseMat[4][4];
|
||||
float splineVec[3], scaleFac;
|
||||
float rad, radius=1.0f;
|
||||
float vec[4], dir[3];
|
||||
float splineVec[3], scaleFac, radius=1.0f;
|
||||
|
||||
/* firstly, calculate the bone matrix the standard way, since this is needed for roll control */
|
||||
where_is_pose_bone(scene, ob, pchan, ctime);
|
||||
@ -1822,24 +1832,41 @@ static void splineik_evaluate_bone(tSplineIK_Tree *tree, Scene *scene, Object *o
|
||||
VECCOPY(poseHead, pchan->pose_head);
|
||||
VECCOPY(poseTail, pchan->pose_tail);
|
||||
|
||||
/* step 1a: get xyz positions for the tail endpoint of the bone */
|
||||
if ( where_on_path(ikData->tar, tree->points[index], vec, dir, NULL, &rad) ) {
|
||||
/* convert the position to pose-space, then store it */
|
||||
mul_m4_v3(ob->imat, vec);
|
||||
VECCOPY(poseTail, vec);
|
||||
/* step 1: determine the positions for the endpoints of the bone */
|
||||
{
|
||||
float vec[4], dir[3], rad;
|
||||
float tailBlendFac= 1.0f;
|
||||
|
||||
/* set the new radius */
|
||||
radius= rad;
|
||||
}
|
||||
/* determine if the bone should still be affected by SplineIK */
|
||||
if (tree->points[index+1] >= 1.0f) {
|
||||
/* spline doesn't affect the bone anymore, so done... */
|
||||
pchan->flag |= POSE_DONE;
|
||||
return;
|
||||
}
|
||||
else if ((tree->points[index] >= 1.0f) && (tree->points[index+1] < 1.0f)) {
|
||||
/* blending factor depends on the amount of the bone still left on the chain */
|
||||
tailBlendFac= (1.0f - tree->points[index+1]) / (tree->points[index] - tree->points[index+1]);
|
||||
}
|
||||
|
||||
/* step 1b: get xyz positions for the head endpoint of the bone */
|
||||
if ( where_on_path(ikData->tar, tree->points[index+1], vec, dir, NULL, &rad) ) {
|
||||
/* store the position, and convert it to pose space */
|
||||
mul_m4_v3(ob->imat, vec);
|
||||
VECCOPY(poseHead, vec);
|
||||
/* tail endpoint */
|
||||
if ( where_on_path(ikData->tar, tree->points[index], vec, dir, NULL, &rad) ) {
|
||||
/* convert the position to pose-space, then store it */
|
||||
mul_m4_v3(ob->imat, vec);
|
||||
interp_v3_v3v3(poseTail, pchan->pose_tail, vec, tailBlendFac);
|
||||
|
||||
/* set the new radius (it should be the average value) */
|
||||
radius = (radius+rad) / 2;
|
||||
/* set the new radius */
|
||||
radius= rad;
|
||||
}
|
||||
|
||||
/* head endpoint */
|
||||
if ( where_on_path(ikData->tar, tree->points[index+1], vec, dir, NULL, &rad) ) {
|
||||
/* store the position, and convert it to pose space */
|
||||
mul_m4_v3(ob->imat, vec);
|
||||
VECCOPY(poseHead, vec);
|
||||
|
||||
/* set the new radius (it should be the average value) */
|
||||
radius = (radius+rad) / 2;
|
||||
}
|
||||
}
|
||||
|
||||
/* step 2: determine the implied transform from these endpoints
|
||||
@ -1878,7 +1905,7 @@ static void splineik_evaluate_bone(tSplineIK_Tree *tree, Scene *scene, Object *o
|
||||
/* construct rotation matrix from the axis-angle rotation found above
|
||||
* - this call takes care to make sure that the axis provided is a unit vector first
|
||||
*/
|
||||
axis_angle_to_mat3( dmat,raxis, rangle);
|
||||
axis_angle_to_mat3(dmat, raxis, rangle);
|
||||
|
||||
/* combine these rotations so that the y-axis of the bone is now aligned as the spline dictates,
|
||||
* while still maintaining roll control from the existing bone animation
|
||||
@ -1889,20 +1916,12 @@ static void splineik_evaluate_bone(tSplineIK_Tree *tree, Scene *scene, Object *o
|
||||
}
|
||||
|
||||
/* step 4: set the scaling factors for the axes */
|
||||
// TODO: include a no-scale option?
|
||||
{
|
||||
/* only multiply the y-axis by the scaling factor to get nice volume-preservation */
|
||||
mul_v3_fl(poseMat[1], scaleFac);
|
||||
|
||||
/* set the scaling factors of the x and z axes from... */
|
||||
switch (ikData->xzScaleMode) {
|
||||
case CONSTRAINT_SPLINEIK_XZS_RADIUS:
|
||||
{
|
||||
/* radius of curve */
|
||||
mul_v3_fl(poseMat[0], radius);
|
||||
mul_v3_fl(poseMat[2], radius);
|
||||
}
|
||||
break;
|
||||
case CONSTRAINT_SPLINEIK_XZS_ORIGINAL:
|
||||
{
|
||||
/* original scales get used */
|
||||
@ -1916,11 +1935,50 @@ static void splineik_evaluate_bone(tSplineIK_Tree *tree, Scene *scene, Object *o
|
||||
mul_v3_fl(poseMat[2], scale);
|
||||
}
|
||||
break;
|
||||
case CONSTRAINT_SPLINEIK_XZS_VOLUMETRIC:
|
||||
{
|
||||
/* 'volume preservation' */
|
||||
float scale;
|
||||
|
||||
/* calculate volume preservation factor which is
|
||||
* basically the inverse of the y-scaling factor
|
||||
*/
|
||||
if (fabs(scaleFac) != 0.0f) {
|
||||
scale= 1.0 / fabs(scaleFac);
|
||||
|
||||
/* we need to clamp this within sensible values */
|
||||
// NOTE: these should be fine for now, but should get sanitised in future
|
||||
scale= MIN2( MAX2(scale, 0.0001) , 100000);
|
||||
}
|
||||
else
|
||||
scale= 1.0f;
|
||||
|
||||
/* apply the scaling */
|
||||
mul_v3_fl(poseMat[0], scale);
|
||||
mul_v3_fl(poseMat[2], scale);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* finally, multiply the x and z scaling by the radius of the curve too,
|
||||
* to allow automatic scales to get tweaked still
|
||||
*/
|
||||
if ((ikData->flag & CONSTRAINT_SPLINEIK_NO_CURVERAD) == 0) {
|
||||
mul_v3_fl(poseMat[0], radius);
|
||||
mul_v3_fl(poseMat[2], radius);
|
||||
}
|
||||
}
|
||||
|
||||
/* step 5: set the location of the bone in the matrix */
|
||||
VECCOPY(poseMat[3], poseHead);
|
||||
/* step 5: set the location of the bone in the matrix
|
||||
* - when the 'no-root' option is affected, the chain can retain
|
||||
* the shape but be moved elsewhere
|
||||
*/
|
||||
if (ikData->flag & CONSTRAINT_SPLINEIK_NO_ROOT) {
|
||||
VECCOPY(poseMat[3], pchan->pose_head);
|
||||
}
|
||||
else {
|
||||
VECCOPY(poseMat[3], poseHead);
|
||||
}
|
||||
|
||||
/* finally, store the new transform */
|
||||
copy_m4_m4(pchan->pose_mat, poseMat);
|
||||
|
@ -83,7 +83,7 @@ Brush *add_brush(const char *name)
|
||||
brush->clone.alpha= 0.5;
|
||||
brush->sculpt_tool = SCULPT_TOOL_DRAW;
|
||||
|
||||
brush_curve_preset(brush, BRUSH_PRESET_SHARP);
|
||||
brush_curve_preset(brush, BRUSH_PRESET_SMOOTH);
|
||||
|
||||
/* enable fake user by default */
|
||||
brush->id.flag |= LIB_FAKEUSER;
|
||||
@ -252,7 +252,7 @@ void brush_curve_preset(Brush *b, BrushCurvePreset preset)
|
||||
if(preset == BRUSH_PRESET_SHARP)
|
||||
cm->totpoint= 3;
|
||||
if(preset == BRUSH_PRESET_SMOOTH)
|
||||
cm->totpoint= 6;
|
||||
cm->totpoint= 4;
|
||||
if(preset == BRUSH_PRESET_MAX)
|
||||
cm->totpoint= 2;
|
||||
|
||||
@ -271,16 +271,12 @@ void brush_curve_preset(Brush *b, BrushCurvePreset preset)
|
||||
else if(preset == BRUSH_PRESET_SMOOTH) {
|
||||
cm->curve[0].x= 0;
|
||||
cm->curve[0].y= 1;
|
||||
cm->curve[1].x= 0.1;
|
||||
cm->curve[1].y= 0.97553;
|
||||
cm->curve[2].x= 0.3;
|
||||
cm->curve[2].y= 0.79389;
|
||||
cm->curve[3].x= 0.9;
|
||||
cm->curve[3].y= 0.02447;
|
||||
cm->curve[4].x= 0.7;
|
||||
cm->curve[4].y= 0.20611;
|
||||
cm->curve[5].x= 1;
|
||||
cm->curve[5].y= 0;
|
||||
cm->curve[1].x= 0.25;
|
||||
cm->curve[1].y= 0.92;
|
||||
cm->curve[2].x= 0.75;
|
||||
cm->curve[2].y= 0.08;
|
||||
cm->curve[3].x= 1;
|
||||
cm->curve[3].y= 0;
|
||||
}
|
||||
else if(preset == BRUSH_PRESET_MAX) {
|
||||
cm->curve[0].x= 0;
|
||||
|
@ -492,8 +492,9 @@ static void mesh_edges_nearest_point(void *userdata, int index, const float *co,
|
||||
t0 = vert[ edge->v1 ].co;
|
||||
t1 = vert[ edge->v2 ].co;
|
||||
|
||||
closest_to_line_segment_v3(nearest_tmp, co, t0, t1);
|
||||
dist = len_v3v3(nearest_tmp, co);
|
||||
// NOTE: casts to "float*" here are due to co being "const float*"
|
||||
closest_to_line_segment_v3(nearest_tmp, (float*)co, t0, t1);
|
||||
dist = len_v3v3(nearest_tmp, (float*)co);
|
||||
|
||||
if(dist < nearest->dist)
|
||||
{
|
||||
|
@ -132,6 +132,7 @@ void cloth_init ( ClothModifierData *clmd )
|
||||
clmd->sim_parms->avg_spring_len = 0.0;
|
||||
clmd->sim_parms->presets = 2; /* cotton as start setting */
|
||||
clmd->sim_parms->timescale = 1.0f; /* speed factor, describes how fast cloth moves */
|
||||
clmd->sim_parms->reset = 0;
|
||||
|
||||
clmd->coll_parms->self_friction = 5.0;
|
||||
clmd->coll_parms->friction = 5.0;
|
||||
@ -452,6 +453,18 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
|
||||
return dm;
|
||||
}
|
||||
|
||||
if(clmd->sim_parms->reset || (framenr == (startframe - clmd->sim_parms->preroll)))
|
||||
{
|
||||
clmd->sim_parms->reset = 0;
|
||||
cache->flag |= PTCACHE_REDO_NEEDED;
|
||||
BKE_ptcache_id_reset(scene, &pid, PTCACHE_RESET_OUTDATED);
|
||||
cache->simframe= 0;
|
||||
cache->last_exact= 0;
|
||||
cache->flag |= PTCACHE_SIMULATION_VALID;
|
||||
cache->flag &= ~PTCACHE_REDO_NEEDED;
|
||||
return result;
|
||||
}
|
||||
|
||||
/* verify we still have the same number of vertices, if not do nothing.
|
||||
* note that this should only happen if the number of vertices changes
|
||||
* during an animation due to a preceding modifier, this should not
|
||||
@ -469,7 +482,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
|
||||
clmd->sim_parms->dt = clmd->sim_parms->timescale / clmd->sim_parms->stepsPerFrame;
|
||||
|
||||
/* handle continuous simulation with the play button */
|
||||
if(BKE_ptcache_get_continue_physics()) {
|
||||
if(BKE_ptcache_get_continue_physics() || ((clmd->sim_parms->preroll > 0) && (framenr > startframe - clmd->sim_parms->preroll) && (framenr < startframe))) {
|
||||
cache->flag &= ~PTCACHE_SIMULATION_VALID;
|
||||
cache->simframe= 0;
|
||||
cache->last_exact= 0;
|
||||
@ -504,7 +517,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
|
||||
if(!do_init_cloth(ob, clmd, result, framenr))
|
||||
return result;
|
||||
|
||||
if(framenr == startframe) {
|
||||
if((framenr == startframe) && (clmd->sim_parms->preroll == 0)) {
|
||||
BKE_ptcache_id_reset(scene, &pid, PTCACHE_RESET_OUTDATED);
|
||||
do_init_cloth(ob, clmd, result, framenr);
|
||||
cache->simframe= framenr;
|
||||
|
@ -726,6 +726,7 @@ CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, BVHTreeOverlap
|
||||
return collpair;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static int cloth_collision_response_moving( ClothModifierData *clmd, CollisionModifierData *collmd, CollPair *collpair, CollPair *collision_end )
|
||||
{
|
||||
int result = 0;
|
||||
@ -834,6 +835,7 @@ static int cloth_collision_response_moving( ClothModifierData *clmd, CollisionMo
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
static float projectPointOntoLine(float *p, float *a, float *b)
|
||||
{
|
||||
@ -1065,6 +1067,7 @@ static float edgedge_distance(float np11[3], float np12[3], float np21[3], float
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static int cloth_collision_moving_edges ( ClothModifierData *clmd, CollisionModifierData *collmd, CollPair *collpair )
|
||||
{
|
||||
EdgeCollPair edgecollpair;
|
||||
@ -1292,6 +1295,7 @@ static int cloth_collision_moving ( ClothModifierData *clmd, CollisionModifierDa
|
||||
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
// return all collision objects in scene
|
||||
|
@ -1927,7 +1927,7 @@ static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraint
|
||||
*/
|
||||
if (data->type < 10) {
|
||||
/* extract rotation (is in whatever space target should be in) */
|
||||
mat4_to_eul( vec,tempmat);
|
||||
mat4_to_eul(vec, tempmat);
|
||||
vec[0] *= (float)(180.0/M_PI);
|
||||
vec[1] *= (float)(180.0/M_PI);
|
||||
vec[2] *= (float)(180.0/M_PI);
|
||||
@ -1935,7 +1935,7 @@ static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraint
|
||||
}
|
||||
else if (data->type < 20) {
|
||||
/* extract scaling (is in whatever space target should be in) */
|
||||
mat4_to_size( vec,tempmat);
|
||||
mat4_to_size(vec, tempmat);
|
||||
axis= data->type - 10;
|
||||
}
|
||||
else {
|
||||
@ -1947,7 +1947,7 @@ static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraint
|
||||
/* Target defines the animation */
|
||||
s = (vec[axis]-data->min) / (data->max-data->min);
|
||||
CLAMP(s, 0, 1);
|
||||
t = ( s * (data->end-data->start)) + data->start;
|
||||
t = (s * (data->end-data->start)) + data->start;
|
||||
|
||||
if (G.f & G_DEBUG)
|
||||
printf("do Action Constraint %s - Ob %s Pchan %s \n", con->name, cob->ob->id.name+2, (cob->pchan)?cob->pchan->name:NULL);
|
||||
@ -1961,9 +1961,13 @@ static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraint
|
||||
/* make a temporary pose and evaluate using that */
|
||||
pose = MEM_callocN(sizeof(bPose), "pose");
|
||||
|
||||
/* make a copy of the bone of interest in the temp pose before evaluating action, so that it can get set */
|
||||
/* make a copy of the bone of interest in the temp pose before evaluating action, so that it can get set
|
||||
* - we need to manually copy over a few settings, including rotation order, otherwise this fails
|
||||
*/
|
||||
pchan = cob->pchan;
|
||||
|
||||
tchan= verify_pose_channel(pose, pchan->name);
|
||||
tchan->rotmode= pchan->rotmode;
|
||||
|
||||
/* evaluate action using workob (it will only set the PoseChannel in question) */
|
||||
what_does_obaction(cob->scene, cob->ob, &workob, pose, data->act, pchan->name, t);
|
||||
@ -3638,6 +3642,121 @@ void free_constraints (ListBase *list)
|
||||
BLI_freelistN(list);
|
||||
}
|
||||
|
||||
|
||||
/* Remove the specified constraint from the given constraint stack */
|
||||
int remove_constraint (ListBase *list, bConstraint *con)
|
||||
{
|
||||
if (con) {
|
||||
free_constraint_data(con);
|
||||
BLI_freelinkN(list, con);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Remove the nth constraint from the given constraint stack */
|
||||
int remove_constraint_index (ListBase *list, int index)
|
||||
{
|
||||
bConstraint *con= BLI_findlink(list, index);
|
||||
|
||||
if (con)
|
||||
return remove_constraint(list, con);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ......... */
|
||||
|
||||
/* Creates a new constraint, initialises its data, and returns it */
|
||||
static bConstraint *add_new_constraint_internal (const char *name, short type)
|
||||
{
|
||||
bConstraint *con= MEM_callocN(sizeof(bConstraint), "Constraint");
|
||||
bConstraintTypeInfo *cti= get_constraint_typeinfo(type);
|
||||
const char *newName;
|
||||
|
||||
/* Set up a generic constraint datablock */
|
||||
con->type = type;
|
||||
con->flag |= CONSTRAINT_EXPAND;
|
||||
con->enforce = 1.0f;
|
||||
|
||||
/* Determine a basic name, and info */
|
||||
if (cti) {
|
||||
/* initialise constraint data */
|
||||
con->data = MEM_callocN(cti->size, cti->structName);
|
||||
|
||||
/* only constraints that change any settings need this */
|
||||
if (cti->new_data)
|
||||
cti->new_data(con->data);
|
||||
|
||||
/* if no name is provided, use the type of the constraint as the name */
|
||||
newName= (name && name[0]) ? name : cti->name;
|
||||
}
|
||||
else {
|
||||
/* if no name is provided, use the generic "Const" name */
|
||||
// NOTE: any constraint type that gets here really shouldn't get added...
|
||||
newName= (name && name[0]) ? name : "Const";
|
||||
}
|
||||
|
||||
/* copy the name */
|
||||
BLI_strncpy(con->name, newName, sizeof(con->name));
|
||||
|
||||
/* return the new constraint */
|
||||
return con;
|
||||
}
|
||||
|
||||
/* if pchan is not NULL then assume we're adding a pose constraint */
|
||||
static bConstraint *add_new_constraint (Object *ob, bPoseChannel *pchan, const char *name, short type)
|
||||
{
|
||||
bConstraint *con;
|
||||
ListBase *list;
|
||||
|
||||
/* add the constraint */
|
||||
con= add_new_constraint_internal(name, type);
|
||||
|
||||
/* find the constraint stack - bone or object? */
|
||||
list = (pchan) ? (&pchan->constraints) : (&ob->constraints);
|
||||
|
||||
if (list) {
|
||||
/* add new constraint to end of list of constraints before ensuring that it has a unique name
|
||||
* (otherwise unique-naming code will fail, since it assumes element exists in list)
|
||||
*/
|
||||
BLI_addtail(list, con);
|
||||
unique_constraint_name(con, list);
|
||||
|
||||
/* if the target list is a list on some PoseChannel belonging to a proxy-protected
|
||||
* Armature layer, we must tag newly added constraints with a flag which allows them
|
||||
* to persist after proxy syncing has been done
|
||||
*/
|
||||
if (proxylocked_constraints_owner(ob, pchan))
|
||||
con->flag |= CONSTRAINT_PROXY_LOCAL;
|
||||
|
||||
/* make this constraint the active one */
|
||||
constraints_set_active(list, con);
|
||||
}
|
||||
|
||||
return con;
|
||||
}
|
||||
|
||||
/* ......... */
|
||||
|
||||
/* Add new constraint for the given bone */
|
||||
bConstraint *add_pose_constraint (Object *ob, bPoseChannel *pchan, const char *name, short type)
|
||||
{
|
||||
if (pchan == NULL)
|
||||
return NULL;
|
||||
|
||||
return add_new_constraint(ob, pchan, name, type);
|
||||
}
|
||||
|
||||
/* Add new constraint for the given object */
|
||||
bConstraint *add_ob_constraint(Object *ob, const char *name, short type)
|
||||
{
|
||||
return add_new_constraint(ob, NULL, name, type);
|
||||
}
|
||||
|
||||
/* ......... */
|
||||
|
||||
/* Reassign links that constraints have to other data (called during file loading?) */
|
||||
void relink_constraints (ListBase *conlist)
|
||||
{
|
||||
@ -3668,6 +3787,8 @@ void relink_constraints (ListBase *conlist)
|
||||
}
|
||||
}
|
||||
|
||||
/* ......... */
|
||||
|
||||
/* duplicate all of the constraints in a constraint stack */
|
||||
void copy_constraints (ListBase *dst, ListBase *src)
|
||||
{
|
||||
@ -3682,6 +3803,7 @@ void copy_constraints (ListBase *dst, ListBase *src)
|
||||
/* make a new copy of the constraint's data */
|
||||
con->data = MEM_dupallocN(con->data);
|
||||
|
||||
// NOTE: depreceated... old animation system
|
||||
id_us_plus((ID *)con->ipo);
|
||||
|
||||
/* only do specific constraints if required */
|
||||
@ -3690,6 +3812,8 @@ void copy_constraints (ListBase *dst, ListBase *src)
|
||||
}
|
||||
}
|
||||
|
||||
/* ......... */
|
||||
|
||||
/* finds the 'active' constraint in a constraint stack */
|
||||
bConstraint *constraints_get_active (ListBase *list)
|
||||
{
|
||||
@ -3707,6 +3831,19 @@ bConstraint *constraints_get_active (ListBase *list)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Set the given constraint as the active one (clearing all the others) */
|
||||
void constraints_set_active (ListBase *list, bConstraint *con)
|
||||
{
|
||||
bConstraint *c;
|
||||
|
||||
for (c= list->first; c; c= c->next) {
|
||||
if (c == con)
|
||||
c->flag |= CONSTRAINT_ACTIVE;
|
||||
else
|
||||
c->flag &= ~CONSTRAINT_ACTIVE;
|
||||
}
|
||||
}
|
||||
|
||||
/* -------- Constraints and Proxies ------- */
|
||||
|
||||
/* Rescue all constraints tagged as being CONSTRAINT_PROXY_LOCAL (i.e. added to bone that's proxy-synced in this file) */
|
||||
|
@ -1569,7 +1569,7 @@ static void alfa_bezpart(BezTriple *prevbezt, BezTriple *bezt, Nurb *nu, float *
|
||||
|
||||
/* correct non-cyclic cases by copying direction and rotation
|
||||
* values onto the first & last end-points */
|
||||
static void bevel_list_cyclic_fix(BevList *bl)
|
||||
static void bevel_list_cyclic_fix_3D(BevList *bl)
|
||||
{
|
||||
BevPoint *bevp, *bevp1;
|
||||
|
||||
@ -1837,7 +1837,7 @@ static void make_bevel_list_3D_tangent(BevList *bl)
|
||||
|
||||
bevel_list_calc_bisect(bl);
|
||||
if(bl->poly== -1) /* check its not cyclic */
|
||||
bevel_list_cyclic_fix(bl); // XXX - run this now so tangents will be right before doing the flipping
|
||||
bevel_list_cyclic_fix_3D(bl); // XXX - run this now so tangents will be right before doing the flipping
|
||||
bevel_list_flip_tangents(bl);
|
||||
|
||||
/* correct the tangents */
|
||||
@ -1896,7 +1896,7 @@ static void make_bevel_list_3D(BevList *bl, int smooth_iter, int twist_mode)
|
||||
}
|
||||
|
||||
if(bl->poly== -1) /* check its not cyclic */
|
||||
bevel_list_cyclic_fix(bl);
|
||||
bevel_list_cyclic_fix_3D(bl);
|
||||
|
||||
if(smooth_iter)
|
||||
bevel_list_smooth(bl, smooth_iter);
|
||||
@ -1906,6 +1906,29 @@ static void make_bevel_list_3D(BevList *bl, int smooth_iter, int twist_mode)
|
||||
|
||||
|
||||
|
||||
/* only for 2 points */
|
||||
static void make_bevel_list_segment_3D(BevList *bl)
|
||||
{
|
||||
float q[4];
|
||||
|
||||
BevPoint *bevp2= (BevPoint *)(bl+1);
|
||||
BevPoint *bevp1= bevp2+1;
|
||||
|
||||
/* simple quat/dir */
|
||||
sub_v3_v3v3(bevp1->dir, bevp1->vec, bevp2->vec);
|
||||
normalize_v3(bevp1->dir);
|
||||
|
||||
vec_to_quat( bevp1->quat,bevp1->dir, 5, 1);
|
||||
|
||||
axis_angle_to_quat(q, bevp1->dir, bevp1->alfa);
|
||||
mul_qt_qtqt(bevp1->quat, q, bevp1->quat);
|
||||
normalize_qt(bevp1->quat);
|
||||
VECCOPY(bevp2->dir, bevp1->dir);
|
||||
QUATCOPY(bevp2->quat, bevp1->quat);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void makeBevelList(Object *ob)
|
||||
{
|
||||
/*
|
||||
@ -2213,7 +2236,9 @@ void makeBevelList(Object *ob)
|
||||
}
|
||||
|
||||
/* STEP 4: 2D-COSINES or 3D ORIENTATION */
|
||||
if((cu->flag & CU_3D)==0) { /* 3D */
|
||||
if((cu->flag & CU_3D)==0) {
|
||||
/* note: bevp->dir and bevp->quat are not needed for beveling but are
|
||||
* used when making a path from a 2D curve, therefor they need to be set - Campbell */
|
||||
bl= cu->bev.first;
|
||||
while(bl) {
|
||||
|
||||
@ -2230,6 +2255,9 @@ void makeBevelList(Object *ob)
|
||||
calc_bevel_sin_cos(x1, y1, -x1, -y1, &(bevp1->sina), &(bevp1->cosa));
|
||||
bevp2->sina= bevp1->sina;
|
||||
bevp2->cosa= bevp1->cosa;
|
||||
|
||||
/* fill in dir & quat */
|
||||
make_bevel_list_segment_3D(bl);
|
||||
}
|
||||
else {
|
||||
bevp2= (BevPoint *)(bl+1);
|
||||
@ -2245,6 +2273,12 @@ void makeBevelList(Object *ob)
|
||||
|
||||
calc_bevel_sin_cos(x1, y1, x2, y2, &(bevp1->sina), &(bevp1->cosa));
|
||||
|
||||
/* from: make_bevel_list_3D_zup, could call but avoid a second loop.
|
||||
* no need for tricky tilt calculation as with 3D curves */
|
||||
bisect_v3_v3v3v3(bevp1->dir, bevp0->vec, bevp1->vec, bevp2->vec);
|
||||
vec_to_quat( bevp1->quat,bevp1->dir, 5, 1);
|
||||
/* done with inline make_bevel_list_3D_zup */
|
||||
|
||||
bevp0= bevp1;
|
||||
bevp1= bevp2;
|
||||
bevp2++;
|
||||
@ -2261,6 +2295,9 @@ void makeBevelList(Object *ob)
|
||||
bevp1= bevp-1;
|
||||
bevp->sina= bevp1->sina;
|
||||
bevp->cosa= bevp1->cosa;
|
||||
|
||||
/* correct for the dir/quat, see above why its needed */
|
||||
bevel_list_cyclic_fix_3D(bl);
|
||||
}
|
||||
}
|
||||
bl= bl->next;
|
||||
@ -2274,22 +2311,7 @@ void makeBevelList(Object *ob)
|
||||
/* do nothing */
|
||||
}
|
||||
else if(bl->nr==2) { /* 2 pnt, treat separate */
|
||||
float q[4];
|
||||
|
||||
bevp2= (BevPoint *)(bl+1);
|
||||
bevp1= bevp2+1;
|
||||
|
||||
/* simple quat/dir */
|
||||
sub_v3_v3v3(bevp1->dir, bevp1->vec, bevp2->vec);
|
||||
normalize_v3(bevp1->dir);
|
||||
|
||||
vec_to_quat( bevp1->quat,bevp1->dir, 5, 1);
|
||||
|
||||
axis_angle_to_quat(q, bevp1->dir, bevp1->alfa);
|
||||
mul_qt_qtqt(bevp1->quat, q, bevp1->quat);
|
||||
normalize_qt(bevp1->quat);
|
||||
VECCOPY(bevp2->dir, bevp1->dir);
|
||||
QUATCOPY(bevp2->quat, bevp1->quat);
|
||||
make_bevel_list_segment_3D(bl);
|
||||
}
|
||||
else {
|
||||
make_bevel_list_3D(bl, (int)(resolu*cu->twist_smooth), cu->twist_mode);
|
||||
|
@ -327,7 +327,7 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node
|
||||
node1 = dag_get_node(dag, dtar->id);
|
||||
|
||||
/* check if bone... */
|
||||
if ((ob->type==OB_ARMATURE) && dtar->rna_path && strstr(dtar->rna_path, "pose.pose_channels["))
|
||||
if ((ob->type==OB_ARMATURE) && dtar->rna_path && strstr(dtar->rna_path, "pose.bones["))
|
||||
dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver");
|
||||
/* check if ob data */
|
||||
else if (dtar->rna_path && strstr(dtar->rna_path, "data."))
|
||||
|
@ -479,7 +479,7 @@ static void init_fastshade_for_ob(Render *re, Object *ob, int *need_orco_r, floa
|
||||
|
||||
invert_m4_m4(tmat, mat);
|
||||
copy_m3_m4(imat, tmat);
|
||||
if(ob->transflag & OB_NEG_SCALE) mul_m3_fl((float *)imat, -1.0);
|
||||
if(ob->transflag & OB_NEG_SCALE) mul_m3_fl(imat, -1.0);
|
||||
|
||||
if (need_orco_r) *need_orco_r= 0;
|
||||
for(a=0; a<ob->totcol; a++) {
|
||||
|
@ -47,6 +47,8 @@
|
||||
#include "BLI_noise.h"
|
||||
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_animsys.h"
|
||||
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_idprop.h"
|
||||
@ -177,6 +179,49 @@ void copy_fcurves (ListBase *dst, ListBase *src)
|
||||
|
||||
/* --------------------- Finding -------------------------- */
|
||||
|
||||
FCurve *id_data_find_fcurve(ID *id, void *data, StructRNA *type, char *prop_name, int index)
|
||||
{
|
||||
/* anim vars */
|
||||
AnimData *adt;
|
||||
FCurve *fcu= NULL;
|
||||
|
||||
/* rna vars */
|
||||
PointerRNA ptr;
|
||||
PropertyRNA *prop;
|
||||
char *path;
|
||||
|
||||
adt= BKE_animdata_from_id(id);
|
||||
|
||||
/* only use the current action ??? */
|
||||
if(adt==NULL || adt->action==NULL)
|
||||
return NULL;
|
||||
|
||||
RNA_pointer_create(id, type, data, &ptr);
|
||||
prop = RNA_struct_find_property(&ptr, prop_name);
|
||||
|
||||
if(prop) {
|
||||
path= RNA_path_from_ID_to_property(&ptr, prop);
|
||||
|
||||
if(path) {
|
||||
/* animation takes priority over drivers */
|
||||
if(adt->action && adt->action->curves.first)
|
||||
fcu= list_find_fcurve(&adt->action->curves, path, index);
|
||||
|
||||
/* if not animated, check if driven */
|
||||
#if 0
|
||||
if(!fcu && (adt->drivers.first)) {
|
||||
fcu= list_find_fcurve(&adt->drivers, path, but->rnaindex);
|
||||
}
|
||||
#endif
|
||||
|
||||
MEM_freeN(path);
|
||||
}
|
||||
}
|
||||
|
||||
return fcu;
|
||||
}
|
||||
|
||||
|
||||
/* Find the F-Curve affecting the given RNA-access path + index, in the list of F-Curves provided */
|
||||
FCurve *list_find_fcurve (ListBase *list, const char rna_path[], const int array_index)
|
||||
{
|
||||
@ -801,8 +846,13 @@ float driver_get_target_value (ChannelDriver *driver, DriverTarget *dtar)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (G.f & G_DEBUG)
|
||||
printf("Driver Evaluation Error: cannot resolve target for %s -> %s \n", id->name, path);
|
||||
else {
|
||||
if (G.f & G_DEBUG)
|
||||
printf("Driver Evaluation Error: cannot resolve target for %s -> %s \n", id->name, path);
|
||||
|
||||
driver->flag |= DRIVER_FLAG_INVALID;
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
@ -831,7 +881,7 @@ static void driver_get_target_pchans2 (ChannelDriver *driver, bPoseChannel **pch
|
||||
/* resolve path so that we have pointer to the right posechannel */
|
||||
if (RNA_path_resolve(&id_ptr, dtar->rna_path, &ptr, &prop)) {
|
||||
/* is pointer valid (i.e. pointing to an actual posechannel */
|
||||
if ((ptr.type == &RNA_PoseChannel) && (ptr.data)) {
|
||||
if ((ptr.type == &RNA_PoseBone) && (ptr.data)) {
|
||||
/* first or second target? */
|
||||
if (i)
|
||||
*pchan1= ptr.data;
|
||||
@ -924,8 +974,8 @@ static float evaluate_driver (ChannelDriver *driver, float evaltime)
|
||||
}
|
||||
|
||||
/* use the final posed locations */
|
||||
mat4_to_quat( q1,pchan->pose_mat);
|
||||
mat4_to_quat( q2,pchan2->pose_mat);
|
||||
mat4_to_quat(q1, pchan->pose_mat);
|
||||
mat4_to_quat(q2, pchan2->pose_mat);
|
||||
|
||||
invert_qt(q1);
|
||||
mul_qt_qtqt(quat, q1, q2);
|
||||
|
@ -53,6 +53,8 @@
|
||||
#include "RNA_access.h"
|
||||
#include "RNA_types.h"
|
||||
|
||||
#include "AUD_C-API.h"
|
||||
|
||||
#ifndef DISABLE_PYTHON
|
||||
#include "BPY_extern.h" /* for BPY_pydriver_eval() */
|
||||
#endif
|
||||
@ -871,6 +873,96 @@ static FModifierTypeInfo FMI_LIMITS = {
|
||||
fcm_limits_evaluate /* evaluate */
|
||||
};
|
||||
|
||||
/* Sound F-Curve Modifier --------------------------- */
|
||||
|
||||
static void fcm_sound_new_data (void *mdata)
|
||||
{
|
||||
FMod_Sound *data= (FMod_Sound *)mdata;
|
||||
|
||||
/* defaults */
|
||||
data->strength= 1.0f;
|
||||
data->delay = 0.0f;
|
||||
data->modification = FCM_SOUND_MODIF_REPLACE;
|
||||
data->sound = NULL;
|
||||
}
|
||||
|
||||
static void fcm_sound_evaluate (FCurve *fcu, FModifier *fcm, float *cvalue, float evaltime)
|
||||
{
|
||||
FMod_Sound *data= (FMod_Sound *)fcm->data;
|
||||
float amplitude;
|
||||
|
||||
AUD_Device *device;
|
||||
AUD_Sound *limiter;
|
||||
AUD_SoundInfo info;
|
||||
|
||||
// XXX fixme - need to get in terms of time instead of frames to be really useful
|
||||
// evaltime = FRA2TIME(evaltime);
|
||||
evaltime -= data->delay;
|
||||
|
||||
/* sound-system cannot cope with negative times/frames */
|
||||
if (evaltime < 0.0f)
|
||||
return;
|
||||
/* must have a sound with a cache so that this can be used */
|
||||
if (ELEM(NULL, data->sound, data->sound->cache))
|
||||
return;
|
||||
|
||||
/* examine this snippet of the wave, and extract the amplitude from it */
|
||||
info = AUD_getInfo(data->sound->cache);
|
||||
info.specs.channels = 1;
|
||||
info.specs.format = AUD_FORMAT_FLOAT32;
|
||||
device = AUD_openReadDevice(info.specs);
|
||||
limiter = AUD_limitSound(data->sound->cache, evaltime, evaltime + 1);
|
||||
AUD_playDevice(device, limiter);
|
||||
AUD_unload(limiter);
|
||||
AUD_readDevice(device, (sample_t*)&litude, 1);
|
||||
AUD_closeReadDevice(device);
|
||||
|
||||
/* combine the amplitude with existing motion data */
|
||||
switch (data->modification) {
|
||||
case FCM_SOUND_MODIF_ADD:
|
||||
*cvalue= *cvalue + amplitude * data->strength;
|
||||
break;
|
||||
case FCM_SOUND_MODIF_SUBTRACT:
|
||||
*cvalue= *cvalue - amplitude * data->strength;
|
||||
break;
|
||||
case FCM_SOUND_MODIF_MULTIPLY:
|
||||
*cvalue= *cvalue * amplitude * data->strength;
|
||||
break;
|
||||
case FCM_SOUND_MODIF_REPLACE:
|
||||
default:
|
||||
*cvalue= *cvalue + amplitude * data->strength;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static float fcm_sound_time (FCurve *fcu, FModifier *fcm, float cvalue, float evaltime)
|
||||
{
|
||||
FMod_Sound *data= (FMod_Sound *)fcm->data;
|
||||
|
||||
/* check for the time delay */
|
||||
// evaltime = FRA2TIME(evaltime);
|
||||
if(evaltime < data->delay)
|
||||
return data->delay;
|
||||
|
||||
/* modifier doesn't change time */
|
||||
return evaltime;
|
||||
}
|
||||
|
||||
static FModifierTypeInfo FMI_SOUND = {
|
||||
FMODIFIER_TYPE_SOUND, /* type */
|
||||
sizeof(FMod_Sound), /* size */
|
||||
FMI_TYPE_REPLACE_VALUES, /* action type */
|
||||
0, /* requirements */
|
||||
"Sound", /* name */
|
||||
"FMod_Sound", /* struct name */
|
||||
NULL, /* free data */
|
||||
NULL, /* copy data */
|
||||
fcm_sound_new_data, /* new data */
|
||||
NULL, /* verify */
|
||||
fcm_sound_time, /* evaluate time */
|
||||
fcm_sound_evaluate /* evaluate */
|
||||
};
|
||||
|
||||
/* F-Curve Modifier API --------------------------- */
|
||||
/* All of the F-Curve Modifier api functions use FModifierTypeInfo structs to carry out
|
||||
* and operations that involve F-Curve modifier specific code.
|
||||
@ -892,6 +984,7 @@ static void fmods_init_typeinfo ()
|
||||
fmodifiersTypeInfo[6]= NULL/*&FMI_FILTER*/; /* Filter F-Curve Modifier */ // XXX unimplemented
|
||||
fmodifiersTypeInfo[7]= &FMI_PYTHON; /* Custom Python F-Curve Modifier */
|
||||
fmodifiersTypeInfo[8]= &FMI_LIMITS; /* Limits F-Curve Modifier */
|
||||
fmodifiersTypeInfo[9]= &FMI_SOUND; /* Sound F-Curve Modifier */
|
||||
}
|
||||
|
||||
/* This function should be used for getting the appropriate type-info when only
|
||||
@ -992,13 +1085,13 @@ void copy_fmodifiers (ListBase *dst, ListBase *src)
|
||||
}
|
||||
|
||||
/* Remove and free the given F-Modifier from the given stack */
|
||||
void remove_fmodifier (ListBase *modifiers, FModifier *fcm)
|
||||
int remove_fmodifier (ListBase *modifiers, FModifier *fcm)
|
||||
{
|
||||
FModifierTypeInfo *fmi= fmodifier_get_typeinfo(fcm);
|
||||
|
||||
/* sanity check */
|
||||
if (fcm == NULL)
|
||||
return;
|
||||
return 0;
|
||||
|
||||
/* free modifier's special data (stored inside fcm->data) */
|
||||
if (fcm->data) {
|
||||
@ -1010,15 +1103,25 @@ void remove_fmodifier (ListBase *modifiers, FModifier *fcm)
|
||||
}
|
||||
|
||||
/* remove modifier from stack */
|
||||
if (modifiers)
|
||||
if (modifiers) {
|
||||
BLI_freelinkN(modifiers, fcm);
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
// XXX this case can probably be removed some day, as it shouldn't happen...
|
||||
printf("remove_fmodifier() - no modifier stack given \n");
|
||||
MEM_freeN(fcm);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove and free the nth F-Modifier from the given stack */
|
||||
int remove_fmodifier_index (ListBase *modifiers, int index)
|
||||
{
|
||||
FModifier *fcm= BLI_findlink(modifiers, index);
|
||||
return remove_fmodifier(modifiers, fcm);
|
||||
}
|
||||
|
||||
/* Remove all of a given F-Curve's modifiers */
|
||||
void free_fmodifiers (ListBase *modifiers)
|
||||
{
|
||||
|
@ -51,6 +51,7 @@
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_object.h"
|
||||
#include "BKE_scene.h" /* object_in_scene */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
@ -95,7 +96,7 @@ void unlink_group(Group *group)
|
||||
|
||||
/* ensure objects are not in this group */
|
||||
for(; base; base= base->next) {
|
||||
if(rem_from_group(group, base->object) && find_group(base->object, NULL)==NULL) {
|
||||
if(rem_from_group(group, base->object, sce, base) && find_group(base->object, NULL)==NULL) {
|
||||
base->object->flag &= ~OB_FROMGROUP;
|
||||
base->flag &= ~OB_FROMGROUP;
|
||||
}
|
||||
@ -153,15 +154,15 @@ Group *copy_group(Group *group)
|
||||
}
|
||||
|
||||
/* external */
|
||||
void add_to_group(Group *group, Object *ob)
|
||||
static int add_to_group_internal(Group *group, Object *ob)
|
||||
{
|
||||
GroupObject *go;
|
||||
|
||||
if(group==NULL || ob==NULL) return;
|
||||
if(group==NULL || ob==NULL) return 0;
|
||||
|
||||
/* check if the object has been added already */
|
||||
for(go= group->gobject.first; go; go= go->next) {
|
||||
if(go->ob==ob) return;
|
||||
if(go->ob==ob) return 0;
|
||||
}
|
||||
|
||||
go= MEM_callocN(sizeof(GroupObject), "groupobject");
|
||||
@ -169,10 +170,31 @@ void add_to_group(Group *group, Object *ob)
|
||||
|
||||
go->ob= ob;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int add_to_group(Group *group, Object *object, Scene *scene, Base *base)
|
||||
{
|
||||
if(add_to_group_internal(group, object)) {
|
||||
if((object->flag & OB_FROMGROUP)==0) {
|
||||
|
||||
if(scene && base==NULL)
|
||||
base= object_in_scene(object, scene);
|
||||
|
||||
object->flag |= OB_FROMGROUP;
|
||||
|
||||
if(base)
|
||||
base->flag |= OB_FROMGROUP;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* also used for ob==NULL */
|
||||
int rem_from_group(Group *group, Object *ob)
|
||||
static int rem_from_group_internal(Group *group, Object *ob)
|
||||
{
|
||||
GroupObject *go, *gon;
|
||||
int removed = 0;
|
||||
@ -192,6 +214,26 @@ int rem_from_group(Group *group, Object *ob)
|
||||
return removed;
|
||||
}
|
||||
|
||||
int rem_from_group(Group *group, Object *object, Scene *scene, Base *base)
|
||||
{
|
||||
if(rem_from_group_internal(group, object)) {
|
||||
|
||||
if(find_group(object, NULL) == NULL) {
|
||||
if(scene && base==NULL)
|
||||
base= object_in_scene(object, scene);
|
||||
|
||||
object->flag &= ~OB_FROMGROUP;
|
||||
|
||||
if(base)
|
||||
base->flag &= ~OB_FROMGROUP;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int object_in_group(Object *ob, Group *group)
|
||||
{
|
||||
GroupObject *go;
|
||||
|
@ -442,7 +442,7 @@ void IDP_RemFromGroup(IDProperty *group, IDProperty *prop)
|
||||
BLI_remlink(&group->data.group, prop);
|
||||
}
|
||||
|
||||
IDProperty *IDP_GetPropertyFromGroup(IDProperty *prop, char *name)
|
||||
IDProperty *IDP_GetPropertyFromGroup(IDProperty *prop, const char *name)
|
||||
{
|
||||
IDProperty *loop;
|
||||
for (loop=prop->data.group.first; loop; loop=loop->next) {
|
||||
|
@ -297,6 +297,7 @@ DO_INLINE void sub_lfvector_lfvector(float (*to)[3], float (*fLongVectorA)[3], f
|
||||
///////////////////////////
|
||||
// 3x3 matrix
|
||||
///////////////////////////
|
||||
#if 0
|
||||
/* printf 3x3 matrix on console: for debug output */
|
||||
static void print_fmatrix(float m3[3][3])
|
||||
{
|
||||
@ -304,6 +305,7 @@ static void print_fmatrix(float m3[3][3])
|
||||
printf("%f\t%f\t%f\n",m3[1][0],m3[1][1],m3[1][2]);
|
||||
printf("%f\t%f\t%f\n\n",m3[2][0],m3[2][1],m3[2][2]);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* copy 3x3 matrix */
|
||||
DO_INLINE void cp_fmatrix(float to[3][3], float from[3][3])
|
||||
@ -972,6 +974,7 @@ DO_INLINE void BuildPPinv(fmatrix3x3 *lA, fmatrix3x3 *P, fmatrix3x3 *Pinv)
|
||||
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
/*
|
||||
// version 1.3
|
||||
static int cg_filtered_pre(lfVector *dv, fmatrix3x3 *lA, lfVector *lB, lfVector *z, fmatrix3x3 *S, fmatrix3x3 *P, fmatrix3x3 *Pinv)
|
||||
@ -1143,6 +1146,7 @@ static int cg_filtered_pre(lfVector *dv, fmatrix3x3 *lA, lfVector *lB, lfVector
|
||||
|
||||
return iterations<conjgrad_looplimit;
|
||||
}
|
||||
#endif
|
||||
|
||||
// outer product is NOT cross product!!!
|
||||
DO_INLINE void dfdx_spring_type1(float to[3][3], float extent[3], float length, float L, float dot, float k)
|
||||
|
@ -919,11 +919,11 @@ static char *get_rna_access (int blocktype, int adrcode, char actname[], char co
|
||||
/* append preceeding bits to path */
|
||||
if ((actname && actname[0]) && (constname && constname[0])) {
|
||||
/* Constraint in Pose-Channel */
|
||||
sprintf(buf, "pose.pose_channels[\"%s\"].constraints[\"%s\"]", actname, constname);
|
||||
sprintf(buf, "pose.bones[\"%s\"].constraints[\"%s\"]", actname, constname);
|
||||
}
|
||||
else if (actname && actname[0]) {
|
||||
/* Pose-Channel */
|
||||
sprintf(buf, "pose.pose_channels[\"%s\"]", actname);
|
||||
sprintf(buf, "pose.bones[\"%s\"]", actname);
|
||||
}
|
||||
else if (constname && constname[0]) {
|
||||
/* Constraint in Object */
|
||||
|
@ -1241,9 +1241,9 @@ static void do_curve_key(Scene *scene, Object *ob, Key *key, char *out, int tot)
|
||||
flag= setkeys(ctime, &key->block, k, t, 0);
|
||||
|
||||
if(flag==0)
|
||||
; /* do_key(a, a+step, tot, (char *)out, key, k, t, 0); */
|
||||
do_key(a, a+step, tot, (char *)out, key, actkb, k, t, 0);
|
||||
else
|
||||
; /* cp_key(a, a+step, tot, (char *)out, key, k[2],0); */
|
||||
cp_key(a, a+step, tot, (char *)out, key, actkb, k[2], NULL, 0);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -1442,6 +1442,50 @@ Key *ob_get_key(Object *ob)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
KeyBlock *add_keyblock(Scene *scene, Key *key)
|
||||
{
|
||||
KeyBlock *kb;
|
||||
float curpos= -0.1;
|
||||
int tot;
|
||||
|
||||
kb= key->block.last;
|
||||
if(kb) curpos= kb->pos;
|
||||
|
||||
kb= MEM_callocN(sizeof(KeyBlock), "Keyblock");
|
||||
BLI_addtail(&key->block, kb);
|
||||
kb->type= KEY_CARDINAL;
|
||||
|
||||
tot= BLI_countlist(&key->block);
|
||||
if(tot==1) strcpy(kb->name, "Basis");
|
||||
else sprintf(kb->name, "Key %d", tot-1);
|
||||
|
||||
// XXX this is old anim system stuff? (i.e. the 'index' of the shapekey)
|
||||
kb->adrcode= tot-1;
|
||||
kb->uid = key->uidgen++;
|
||||
|
||||
key->totkey++;
|
||||
if(key->totkey==1) key->refkey= kb;
|
||||
|
||||
kb->slidermin= 0.0f;
|
||||
kb->slidermax= 1.0f;
|
||||
|
||||
// XXX kb->pos is the confusing old horizontal-line RVK crap in old IPO Editor...
|
||||
if(key->type == KEY_RELATIVE)
|
||||
kb->pos= curpos+0.1;
|
||||
else {
|
||||
#if 0 // XXX old animation system
|
||||
curpos= bsystem_time(scene, 0, (float)CFRA, 0.0);
|
||||
if(calc_ipo_spec(key->ipo, KEY_SPEED, &curpos)==0) {
|
||||
curpos /= 100.0;
|
||||
}
|
||||
kb->pos= curpos;
|
||||
|
||||
sort_keys(key);
|
||||
#endif // XXX old animation system
|
||||
}
|
||||
return kb;
|
||||
}
|
||||
|
||||
/* only the active keyblock */
|
||||
KeyBlock *ob_get_keyblock(Object *ob)
|
||||
{
|
||||
@ -1455,6 +1499,16 @@ KeyBlock *ob_get_keyblock(Object *ob)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
KeyBlock *ob_get_reference_keyblock(Object *ob)
|
||||
{
|
||||
Key *key= ob_get_key(ob);
|
||||
|
||||
if (key)
|
||||
return key->refkey;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* get the appropriate KeyBlock given an index */
|
||||
KeyBlock *key_get_keyblock(Key *key, int index)
|
||||
{
|
||||
|
@ -3167,7 +3167,7 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
|
||||
}
|
||||
|
||||
unit_m4(offsetmat);
|
||||
mul_mat3_m4_fl(offsetmat[0], 0.5);
|
||||
mul_mat3_m4_fl(offsetmat, 0.5);
|
||||
offsetmat[3][0] = offsetmat[3][1] = offsetmat[3][2] = 0.5;
|
||||
|
||||
if (cam) {
|
||||
@ -5202,7 +5202,7 @@ static void collisionModifier_initData(ModifierData *md)
|
||||
collmd->current_x = NULL;
|
||||
collmd->current_xnew = NULL;
|
||||
collmd->current_v = NULL;
|
||||
collmd->time = -1;
|
||||
collmd->time = -1000;
|
||||
collmd->numverts = 0;
|
||||
collmd->bvhtree = NULL;
|
||||
}
|
||||
@ -5233,7 +5233,7 @@ static void collisionModifier_freeData(ModifierData *md)
|
||||
collmd->current_x = NULL;
|
||||
collmd->current_xnew = NULL;
|
||||
collmd->current_v = NULL;
|
||||
collmd->time = -1;
|
||||
collmd->time = -1000;
|
||||
collmd->numverts = 0;
|
||||
collmd->bvhtree = NULL;
|
||||
collmd->mfaces = NULL;
|
||||
@ -5283,7 +5283,7 @@ static void collisionModifier_deformVerts(
|
||||
if(collmd->x && (numverts != collmd->numverts))
|
||||
collisionModifier_freeData((ModifierData *)collmd);
|
||||
|
||||
if(collmd->time == -1) // first time
|
||||
if(collmd->time == -1000) // first time
|
||||
{
|
||||
collmd->x = dm->dupVertArray(dm); // frame start position
|
||||
|
||||
@ -8121,6 +8121,12 @@ int modifier_couldBeCage(ModifierData *md)
|
||||
modifier_supportsMapping(md));
|
||||
}
|
||||
|
||||
int modifier_sameTopology(ModifierData *md)
|
||||
{
|
||||
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
|
||||
return ( mti->type == eModifierTypeType_OnlyDeform || mti->type == eModifierTypeType_Nonconstructive);
|
||||
}
|
||||
|
||||
void modifier_setError(ModifierData *md, char *format, ...)
|
||||
{
|
||||
char buffer[2048];
|
||||
|
@ -32,6 +32,7 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "DNA_ID.h"
|
||||
@ -903,7 +904,11 @@ void nodeAddSockets(bNode *node, bNodeType *ntype)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Find the first available, non-duplicate name for a given node */
|
||||
void nodeUniqueName(bNodeTree *ntree, bNode *node)
|
||||
{
|
||||
BLI_uniquename(&ntree->nodes, node, "Node", '.', offsetof(bNode, name), 32);
|
||||
}
|
||||
|
||||
bNode *nodeAddNodeType(bNodeTree *ntree, int type, bNodeTree *ngroup, ID *id)
|
||||
{
|
||||
@ -937,6 +942,9 @@ bNode *nodeAddNodeType(bNodeTree *ntree, int type, bNodeTree *ngroup, ID *id)
|
||||
}
|
||||
else
|
||||
BLI_strncpy(node->name, ntype->name, NODE_MAXSTR);
|
||||
|
||||
nodeUniqueName(ntree, node);
|
||||
|
||||
node->type= ntype->type;
|
||||
node->flag= NODE_SELECT|ntype->flag;
|
||||
node->width= ntype->width;
|
||||
@ -989,6 +997,8 @@ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node, int internal)
|
||||
bNodeSocket *sock, *oldsock;
|
||||
|
||||
*nnode= *node;
|
||||
nodeUniqueName(ntree, nnode);
|
||||
|
||||
BLI_addtail(&ntree->nodes, nnode);
|
||||
|
||||
BLI_duplicatelist(&nnode->inputs, &node->inputs);
|
||||
@ -1062,6 +1072,11 @@ bNodeTree *ntreeAddTree(int type)
|
||||
return ntree;
|
||||
}
|
||||
|
||||
/* Warning: this function gets called during some rather unexpected times
|
||||
* - internal_select is only 1 when used for duplicating selected nodes (i.e. Shift-D duplicate operator)
|
||||
* - this gets called when executing compositing updates (for threaded previews)
|
||||
* - when the nodetree datablock needs to be copied (i.e. when users get copied)
|
||||
*/
|
||||
bNodeTree *ntreeCopyTree(bNodeTree *ntree, int internal_select)
|
||||
{
|
||||
bNodeTree *newtree;
|
||||
@ -1093,10 +1108,9 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree, int internal_select)
|
||||
if(internal_select==0 || (node->flag & NODE_SELECT)) {
|
||||
nnode= nodeCopyNode(newtree, node, internal_select); /* sets node->new */
|
||||
if(internal_select) {
|
||||
node->flag &= ~NODE_SELECT;
|
||||
node->flag &= ~(NODE_SELECT|NODE_ACTIVE);
|
||||
nnode->flag |= NODE_SELECT;
|
||||
}
|
||||
node->flag &= ~NODE_ACTIVE;
|
||||
|
||||
/* deselect original sockets */
|
||||
for(sock= node->inputs.first; sock; sock= sock->next) {
|
||||
|
@ -623,7 +623,7 @@ void unlink_object(Scene *scene, Object *ob)
|
||||
/* groups */
|
||||
group= G.main->group.first;
|
||||
while(group) {
|
||||
rem_from_group(group, ob);
|
||||
rem_from_group(group, ob, NULL, NULL);
|
||||
group= group->id.next;
|
||||
}
|
||||
|
||||
|
@ -161,7 +161,7 @@ void paint_brush_slot_remove(Paint *p)
|
||||
|
||||
int paint_facesel_test(Object *ob)
|
||||
{
|
||||
return (ob && ob->data && (((Mesh *)ob->data)->editflag & ME_EDIT_PAINT_MASK) && (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)));
|
||||
return (ob && ob->type==OB_MESH && ob->data && (((Mesh *)ob->data)->editflag & ME_EDIT_PAINT_MASK) && (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)));
|
||||
}
|
||||
|
||||
void paint_init(Paint *p, const char col[3])
|
||||
|
@ -36,11 +36,13 @@
|
||||
|
||||
#include "DNA_scene_types.h"
|
||||
#include "DNA_sequence_types.h"
|
||||
#include "DNA_anim_types.h"
|
||||
|
||||
#include "BLI_blenlib.h"
|
||||
#include "BLI_math.h"
|
||||
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_plugin_types.h"
|
||||
#include "BKE_sequence.h"
|
||||
#include "BKE_texture.h"
|
||||
@ -49,6 +51,8 @@
|
||||
#include "IMB_imbuf_types.h"
|
||||
#include "IMB_imbuf.h"
|
||||
|
||||
#include "RNA_access.h"
|
||||
|
||||
/* **** XXX **** */
|
||||
static void error() {}
|
||||
|
||||
@ -242,7 +246,6 @@ static void do_plugin_effect(Sequence * seq,int cfra,
|
||||
|
||||
if(seq->plugin->cfra)
|
||||
*(seq->plugin->cfra)= cfra;
|
||||
// XXX *(seq->plugin->cfra)= frame_to_float(scene, cfra);
|
||||
|
||||
cp = PIL_dynlib_find_symbol(
|
||||
seq->plugin->handle, "seqname");
|
||||
@ -2777,14 +2780,13 @@ static void store_icu_yrange_speed(struct Sequence * seq,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sequence_effect_speed_rebuild_map(Sequence * seq, int force)
|
||||
void sequence_effect_speed_rebuild_map(Scene *scene, Sequence * seq, int force)
|
||||
{
|
||||
float facf0 = seq->facf0;
|
||||
//float ctime, div;
|
||||
float ctime, div;
|
||||
int cfra;
|
||||
float fallback_fac;
|
||||
SpeedControlVars * v = (SpeedControlVars *)seq->effectdata;
|
||||
FCurve *fcu= NULL;
|
||||
|
||||
/* if not already done, load / initialize data */
|
||||
get_sequence_effect(seq);
|
||||
@ -2797,6 +2799,11 @@ void sequence_effect_speed_rebuild_map(Sequence * seq, int force)
|
||||
return;
|
||||
}
|
||||
|
||||
/* XXX - new in 2.5x. should we use the animation system this way?
|
||||
* The fcurve is needed because many frames need evaluating at once - campbell */
|
||||
fcu= id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "speed_fader", 0);
|
||||
|
||||
|
||||
if (!v->frameMap || v->length != seq->len) {
|
||||
if (v->frameMap) MEM_freeN(v->frameMap);
|
||||
|
||||
@ -2811,8 +2818,7 @@ void sequence_effect_speed_rebuild_map(Sequence * seq, int force)
|
||||
/* if there is no IPO, try to make retiming easy by stretching the
|
||||
strip */
|
||||
// XXX old animation system - seq
|
||||
if (/*!seq->ipo &&*/ seq->seq1->enddisp != seq->seq1->start
|
||||
&& seq->seq1->len != 0) {
|
||||
if (!fcu && seq->seq1->enddisp != seq->seq1->start && seq->seq1->len != 0) {
|
||||
fallback_fac = (float) seq->seq1->len /
|
||||
(float) (seq->seq1->enddisp - seq->seq1->start);
|
||||
/* FIXME: this strip stretching gets screwed by stripdata
|
||||
@ -2829,32 +2835,29 @@ void sequence_effect_speed_rebuild_map(Sequence * seq, int force)
|
||||
|
||||
if ((v->flags & SEQ_SPEED_INTEGRATE) != 0) {
|
||||
float cursor = 0;
|
||||
float facf;
|
||||
|
||||
v->frameMap[0] = 0;
|
||||
v->lastValidFrame = 0;
|
||||
|
||||
for (cfra = 1; cfra < v->length; cfra++) {
|
||||
#if 0 // XXX old animation system
|
||||
if(seq->ipo) {
|
||||
if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) {
|
||||
ctime = frame_to_float(scene, seq->startdisp + cfra);
|
||||
div = 1.0;
|
||||
} else {
|
||||
ctime= frame_to_float(scene, cfra);
|
||||
div= v->length / 100.0f;
|
||||
if(div==0.0) return;
|
||||
}
|
||||
if(fcu) {
|
||||
if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) {
|
||||
ctime = seq->startdisp + cfra;
|
||||
div = 1.0;
|
||||
} else {
|
||||
ctime= cfra;
|
||||
div= v->length / 100.0f;
|
||||
if(div==0.0) return;
|
||||
}
|
||||
|
||||
calc_ipo(seq->ipo, ctime/div);
|
||||
execute_ipo((ID *)seq, seq->ipo);
|
||||
} else
|
||||
#endif // XXX old animation system
|
||||
{
|
||||
seq->facf0 = fallback_fac;
|
||||
facf = evaluate_fcurve(fcu, ctime/div);
|
||||
} else {
|
||||
facf = fallback_fac;
|
||||
}
|
||||
seq->facf0 *= v->globalSpeed;
|
||||
facf *= v->globalSpeed;
|
||||
|
||||
cursor += seq->facf0;
|
||||
cursor += facf;
|
||||
|
||||
if (cursor >= v->length) {
|
||||
v->frameMap[cfra] = v->length - 1;
|
||||
@ -2864,40 +2867,39 @@ void sequence_effect_speed_rebuild_map(Sequence * seq, int force)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
float facf;
|
||||
|
||||
v->lastValidFrame = 0;
|
||||
for (cfra = 0; cfra < v->length; cfra++) {
|
||||
#if 0 // XXX old animation system
|
||||
if(seq->ipo) {
|
||||
if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) {
|
||||
ctime = frame_to_float(scene, seq->startdisp + cfra);
|
||||
div = 1.0;
|
||||
} else {
|
||||
ctime= frame_to_float(scene, cfra);
|
||||
div= v->length / 100.0f;
|
||||
if(div==0.0) return;
|
||||
}
|
||||
|
||||
calc_ipo(seq->ipo, ctime/div);
|
||||
execute_ipo((ID *)seq, seq->ipo);
|
||||
}
|
||||
#endif // XXX old animation system
|
||||
if(fcu) {
|
||||
if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) {
|
||||
ctime = seq->startdisp + cfra;
|
||||
div = 1.0;
|
||||
} else {
|
||||
ctime= cfra;
|
||||
div= v->length / 100.0f;
|
||||
if(div==0.0) return;
|
||||
}
|
||||
|
||||
if (v->flags & SEQ_SPEED_COMPRESS_IPO_Y) {
|
||||
seq->facf0 *= v->length;
|
||||
facf = evaluate_fcurve(fcu, ctime / div);
|
||||
if (v->flags & SEQ_SPEED_COMPRESS_IPO_Y) {
|
||||
facf *= v->length;
|
||||
}
|
||||
}
|
||||
if (/*!seq->ipo*/ 1) { // XXX old animation system - seq
|
||||
seq->facf0 = (float) cfra * fallback_fac;
|
||||
|
||||
if (!fcu) {
|
||||
facf = (float) cfra * fallback_fac;
|
||||
}
|
||||
seq->facf0 *= v->globalSpeed;
|
||||
if (seq->facf0 >= v->length) {
|
||||
seq->facf0 = v->length - 1;
|
||||
facf *= v->globalSpeed;
|
||||
if (facf >= v->length) {
|
||||
facf = v->length - 1;
|
||||
} else {
|
||||
v->lastValidFrame = cfra;
|
||||
}
|
||||
v->frameMap[cfra] = seq->facf0;
|
||||
v->frameMap[cfra] = facf;
|
||||
}
|
||||
}
|
||||
seq->facf0 = facf0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -27,6 +27,7 @@
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
@ -37,14 +38,19 @@
|
||||
#include "DNA_listBase.h"
|
||||
#include "DNA_sequence_types.h"
|
||||
#include "DNA_scene_types.h"
|
||||
#include "DNA_anim_types.h"
|
||||
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_image.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_sequence.h"
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_utildefines.h"
|
||||
#include "RNA_access.h"
|
||||
#include "RE_pipeline.h"
|
||||
|
||||
#include "BLI_blenlib.h"
|
||||
#include "BLI_util.h"
|
||||
|
||||
#include "IMB_imbuf.h"
|
||||
#include "IMB_imbuf_types.h"
|
||||
@ -63,8 +69,8 @@
|
||||
/* **** XXX ******** */
|
||||
static int seqrectx= 0; /* bad bad global! */
|
||||
static int seqrecty= 0;
|
||||
static void waitcursor(int val) {}
|
||||
static int blender_test_break() {return 0;}
|
||||
//static void waitcursor(int val) {}
|
||||
//static int blender_test_break() {return 0;}
|
||||
|
||||
/* **** XXX ******** */
|
||||
|
||||
@ -602,8 +608,8 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq)
|
||||
sce = seq->scene;
|
||||
}
|
||||
|
||||
strncpy(seq->name + 2, sce->id.name + 2,
|
||||
sizeof(seq->name) - 2);
|
||||
BLI_strncpy(seq->name+2, sce->id.name + 2, SEQ_NAME_MAXSTR-2);
|
||||
seqUniqueName(scene->ed->seqbasep, seq);
|
||||
|
||||
seq->len= seq->scene->r.efra - seq->scene->r.sfra + 1;
|
||||
seq->len -= seq->anim_startofs;
|
||||
@ -807,24 +813,25 @@ static void do_effect(Scene *scene, int cfra, Sequence *seq, TStripElem * se)
|
||||
int x, y;
|
||||
int early_out;
|
||||
struct SeqEffectHandle sh = get_sequence_effect(seq);
|
||||
FCurve *fcu= NULL;
|
||||
|
||||
if (!sh.execute) { /* effect not supported in this version... */
|
||||
make_black_ibuf(se->ibuf);
|
||||
return;
|
||||
}
|
||||
|
||||
#if 0 // XXX old animation system
|
||||
if(seq->ipo && seq->ipo->curve.first) {
|
||||
do_seq_ipo(scene, seq, cfra);
|
||||
fac= seq->facf0;
|
||||
facf= seq->facf1;
|
||||
} else
|
||||
#endif // XXX old animation system
|
||||
{
|
||||
sh.get_default_fac(seq, cfra, &fac, &facf);
|
||||
}
|
||||
fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence,
|
||||
"effect_fader", 0);
|
||||
|
||||
if( !(scene->r.mode & R_FIELDS) ) facf = fac;
|
||||
if (!fcu) {
|
||||
sh.get_default_fac(seq, cfra, &fac, &facf);
|
||||
if( scene->r.mode & R_FIELDS ); else facf= fac;
|
||||
} else {
|
||||
fac = facf = evaluate_fcurve(fcu, cfra);
|
||||
if( scene->r.mode & R_FIELDS ) {
|
||||
facf = evaluate_fcurve(fcu, cfra + 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
early_out = sh.early_out(seq, fac, facf);
|
||||
|
||||
@ -1230,6 +1237,7 @@ static struct ImBuf * seq_proxy_fetch(Scene *scene, Sequence * seq, int cfra, in
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int cfra,
|
||||
int build_proxy_run, int render_size);
|
||||
|
||||
@ -1360,6 +1368,7 @@ static void seq_proxy_rebuild(Scene *scene, Sequence * seq)
|
||||
}
|
||||
waitcursor(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* **********************************************************************
|
||||
@ -1561,12 +1570,6 @@ static int input_have_to_preprocess(Scene *scene, Sequence * seq, TStripElem* se
|
||||
|
||||
if(seq->blend_mode == SEQ_BLEND_REPLACE &&
|
||||
!(seq->type & SEQ_EFFECT)) {
|
||||
#if 0 // XXX old animation system
|
||||
if (seq->ipo && seq->ipo->curve.first) {
|
||||
do_seq_ipo(scene, seq, cfra);
|
||||
mul *= seq->facf0;
|
||||
}
|
||||
#endif // XXX old animation system
|
||||
mul *= seq->blend_opacity / 100.0;
|
||||
}
|
||||
|
||||
@ -1651,12 +1654,6 @@ static void input_preprocess(Scene *scene, Sequence *seq, TStripElem *se, int cf
|
||||
mul = seq->mul;
|
||||
|
||||
if(seq->blend_mode == SEQ_BLEND_REPLACE) {
|
||||
#if 0 // XXX old animation system
|
||||
if (seq->ipo && seq->ipo->curve.first) {
|
||||
do_seq_ipo(scene, seq, cfra);
|
||||
mul *= seq->facf0;
|
||||
}
|
||||
#endif // XXX old animation system
|
||||
mul *= seq->blend_opacity / 100.0;
|
||||
}
|
||||
|
||||
@ -2010,14 +2007,9 @@ static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int
|
||||
}
|
||||
}
|
||||
} else if(seq->type == SEQ_SCENE) { // scene can be NULL after deletions
|
||||
#if 0
|
||||
/* XXX move entirely to render? */
|
||||
int oldcfra = CFRA;
|
||||
Sequence * oldseq = get_last_seq();
|
||||
Scene *sce= seq->scene, *oldsce= scene;
|
||||
Render *re;
|
||||
RenderResult rres;
|
||||
int doseq, rendering= G.rendering;
|
||||
char scenename[64];
|
||||
int have_seq= (sce->r.scemode & R_DOSEQ) && sce->ed && sce->ed->seqbase.first;
|
||||
int sce_valid =sce && (sce->camera || have_seq);
|
||||
@ -2039,18 +2031,24 @@ static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int
|
||||
if (!sce_valid) {
|
||||
se->ok = STRIPELEM_FAILED;
|
||||
} else if (se->ibuf==NULL && sce_valid) {
|
||||
/* no need to display a waitcursor on sequencer
|
||||
scene strips */
|
||||
if (!have_seq)
|
||||
waitcursor(1);
|
||||
|
||||
int oldcfra;
|
||||
/* Hack! This function can be called from do_render_seq(), in that case
|
||||
the seq->scene can already have a Render initialized with same name,
|
||||
so we have to use a default name. (compositor uses scene name to
|
||||
find render).
|
||||
However, when called from within the UI (image preview in sequencer)
|
||||
we do want to use scene Render, that way the render result is defined
|
||||
for display in render/imagewindow */
|
||||
for display in render/imagewindow
|
||||
|
||||
Hmm, don't see, why we can't do that all the time,
|
||||
and since G.rendering is uhm, gone... (Peter)
|
||||
*/
|
||||
|
||||
int rendering = 1;
|
||||
int doseq;
|
||||
|
||||
oldcfra = seq->scene->r.cfra;
|
||||
|
||||
if(rendering) {
|
||||
BLI_strncpy(scenename, sce->id.name+2, 64);
|
||||
strcpy(sce->id.name+2, " do_build_seq_ibuf");
|
||||
@ -2061,16 +2059,9 @@ static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int
|
||||
doseq= scene->r.scemode & R_DOSEQ;
|
||||
scene->r.scemode &= ~R_DOSEQ;
|
||||
|
||||
BIF_init_render_callbacks(re, 0); /* 0= no display callbacks */
|
||||
|
||||
/* XXX hrms, set_scene still needed? work on that... */
|
||||
if(sce!=oldsce) set_scene_bg(sce);
|
||||
RE_BlenderFrame(re, sce,
|
||||
seq->sfra+se->nr+seq->anim_startofs);
|
||||
if(sce!=oldsce) set_scene_bg(oldsce);
|
||||
|
||||
/* UGLY WARNING, it is set to zero in RE_BlenderFrame */
|
||||
G.rendering= rendering;
|
||||
if(rendering)
|
||||
BLI_strncpy(sce->id.name+2, scenename, 64);
|
||||
|
||||
@ -2090,20 +2081,12 @@ static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int
|
||||
|
||||
RE_ReleaseResultImage(re);
|
||||
|
||||
BIF_end_render_callbacks();
|
||||
// BIF_end_render_callbacks();
|
||||
|
||||
/* restore */
|
||||
scene->r.scemode |= doseq;
|
||||
|
||||
// XXX
|
||||
#if 0
|
||||
if((G.f & G_PLAYANIM)==0 /* bad, is set on do_render_seq */
|
||||
&& !have_seq
|
||||
&& !build_proxy_run)
|
||||
#endif
|
||||
|
||||
CFRA = oldcfra;
|
||||
set_last_seq(oldseq);
|
||||
seq->scene->r.cfra = oldcfra;
|
||||
|
||||
copy_to_ibuf_still(seq, se);
|
||||
|
||||
@ -2116,7 +2099,6 @@ static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, int
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
}
|
||||
if (!build_proxy_run) {
|
||||
if (se->ibuf && use_limiter) {
|
||||
@ -2134,23 +2116,24 @@ static void do_effect_seq_recursively(Scene *scene, Sequence *seq, TStripElem *s
|
||||
float fac, facf;
|
||||
struct SeqEffectHandle sh = get_sequence_effect(seq);
|
||||
int early_out;
|
||||
FCurve *fcu= NULL;
|
||||
|
||||
se->se1 = 0;
|
||||
se->se2 = 0;
|
||||
se->se3 = 0;
|
||||
|
||||
#if 0 // XXX old animation system
|
||||
if(seq->ipo && seq->ipo->curve.first) {
|
||||
do_seq_ipo(scene, seq, cfra);
|
||||
fac= seq->facf0;
|
||||
facf= seq->facf1;
|
||||
} else
|
||||
#endif // XXX old animation system
|
||||
{
|
||||
sh.get_default_fac(seq, cfra, &fac, &facf);
|
||||
}
|
||||
fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence,
|
||||
"effect_fader", 0);
|
||||
|
||||
if( scene->r.mode & R_FIELDS ); else facf= fac;
|
||||
if (!fcu) {
|
||||
sh.get_default_fac(seq, cfra, &fac, &facf);
|
||||
if( scene->r.mode & R_FIELDS ); else facf= fac;
|
||||
} else {
|
||||
fac = facf = evaluate_fcurve(fcu, cfra);
|
||||
if( scene->r.mode & R_FIELDS ) {
|
||||
facf = evaluate_fcurve(fcu, cfra + 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
early_out = sh.early_out(seq, fac, facf);
|
||||
switch (early_out) {
|
||||
@ -2224,7 +2207,7 @@ static TStripElem* do_handle_speed_effect(Scene *scene, Sequence * seq, int cfra
|
||||
TStripElem * se1 = 0;
|
||||
TStripElem * se2 = 0;
|
||||
|
||||
sequence_effect_speed_rebuild_map(seq, 0);
|
||||
sequence_effect_speed_rebuild_map(scene, seq, 0);
|
||||
|
||||
f_cfra = seq->start + s->frameMap[nr];
|
||||
|
||||
@ -2385,6 +2368,7 @@ static TStripElem* do_build_seq_array_recursively(Scene *scene,
|
||||
int early_out;
|
||||
Sequence * seq = seq_arr[i];
|
||||
struct SeqEffectHandle sh;
|
||||
float facf;
|
||||
|
||||
se = give_tstripelem(seq, cfra);
|
||||
|
||||
@ -2411,20 +2395,9 @@ static TStripElem* do_build_seq_array_recursively(Scene *scene,
|
||||
|
||||
sh = get_sequence_blend(seq);
|
||||
|
||||
seq->facf0 = seq->facf1 = 1.0;
|
||||
facf = seq->blend_opacity / 100.0;
|
||||
|
||||
#if 0 // XXX old animation system
|
||||
if(seq->ipo && seq->ipo->curve.first) {
|
||||
do_seq_ipo(scene, seq, cfra);
|
||||
}
|
||||
#endif
|
||||
|
||||
if( scene->r.mode & R_FIELDS ); else seq->facf0 = seq->facf1;
|
||||
|
||||
seq->facf0 *= seq->blend_opacity / 100.0;
|
||||
seq->facf1 *= seq->blend_opacity / 100.0;
|
||||
|
||||
early_out = sh.early_out(seq, seq->facf0, seq->facf1);
|
||||
early_out = sh.early_out(seq, facf, facf);
|
||||
|
||||
switch (early_out) {
|
||||
case -1:
|
||||
@ -2482,7 +2455,9 @@ static TStripElem* do_build_seq_array_recursively(Scene *scene,
|
||||
TStripElem* se1 = give_tstripelem(seq_arr[i-1], cfra);
|
||||
TStripElem* se2 = give_tstripelem(seq_arr[i], cfra);
|
||||
|
||||
int early_out = sh.early_out(seq, seq->facf0, seq->facf1);
|
||||
float facf = seq->blend_opacity / 100.0;
|
||||
|
||||
int early_out = sh.early_out(seq, facf, facf);
|
||||
switch (early_out) {
|
||||
case 0: {
|
||||
int x= se2->ibuf->x;
|
||||
@ -2530,12 +2505,12 @@ static TStripElem* do_build_seq_array_recursively(Scene *scene,
|
||||
|
||||
if (swap_input) {
|
||||
sh.execute(seq, cfra,
|
||||
seq->facf0, seq->facf1, x, y,
|
||||
facf, facf, x, y,
|
||||
se2->ibuf, se1->ibuf_comp, 0,
|
||||
se2->ibuf_comp);
|
||||
} else {
|
||||
sh.execute(seq, cfra,
|
||||
seq->facf0, seq->facf1, x, y,
|
||||
facf, facf, x, y,
|
||||
se1->ibuf_comp, se2->ibuf, 0,
|
||||
se2->ibuf_comp);
|
||||
}
|
||||
@ -2631,6 +2606,7 @@ ImBuf *give_ibuf_seq(Scene *scene, int rectx, int recty, int cfra, int chanshown
|
||||
return i;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* check used when we need to change seq->blend_mode but not to effect or audio strips */
|
||||
static int seq_can_blend(Sequence *seq)
|
||||
{
|
||||
@ -2640,6 +2616,7 @@ static int seq_can_blend(Sequence *seq)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* *********************** threading api ******************* */
|
||||
|
||||
@ -2651,8 +2628,8 @@ static pthread_mutex_t queue_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||
static pthread_mutex_t wakeup_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||
static pthread_cond_t wakeup_cond = PTHREAD_COND_INITIALIZER;
|
||||
|
||||
static pthread_mutex_t prefetch_ready_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||
static pthread_cond_t prefetch_ready_cond = PTHREAD_COND_INITIALIZER;
|
||||
//static pthread_mutex_t prefetch_ready_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||
//static pthread_cond_t prefetch_ready_cond = PTHREAD_COND_INITIALIZER;
|
||||
|
||||
static pthread_mutex_t frame_done_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||
static pthread_cond_t frame_done_cond = PTHREAD_COND_INITIALIZER;
|
||||
@ -2685,6 +2662,7 @@ typedef struct PrefetchQueueElem {
|
||||
struct ImBuf * ibuf;
|
||||
} PrefetchQueueElem;
|
||||
|
||||
#if 0
|
||||
static void *seq_prefetch_thread(void * This_)
|
||||
{
|
||||
PrefetchThread * This = This_;
|
||||
@ -2833,6 +2811,7 @@ static void seq_stop_threads()
|
||||
/* deinit malloc mutex */
|
||||
BLI_end_threads(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown,
|
||||
int render_size)
|
||||
@ -2859,6 +2838,7 @@ void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown,
|
||||
pthread_mutex_unlock(&wakeup_lock);
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void seq_wait_for_prefetch_ready()
|
||||
{
|
||||
PrefetchThread *tslot;
|
||||
@ -2887,6 +2867,7 @@ static void seq_wait_for_prefetch_ready()
|
||||
|
||||
fprintf(stderr, "SEQ-THREAD: prefetch done\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
ImBuf *give_ibuf_seq_threaded(Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size)
|
||||
{
|
||||
@ -2993,6 +2974,7 @@ static void free_anim_seq(Sequence *seq)
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void free_imbuf_seq_except(Scene *scene, int cfra)
|
||||
{
|
||||
Editing *ed= seq_give_editing(scene, FALSE);
|
||||
@ -3042,8 +3024,9 @@ static void free_imbuf_seq_except(Scene *scene, int cfra)
|
||||
}
|
||||
SEQ_END
|
||||
}
|
||||
#endif
|
||||
|
||||
void free_imbuf_seq(ListBase * seqbase, int check_mem_usage)
|
||||
void free_imbuf_seq(Scene *scene, ListBase * seqbase, int check_mem_usage)
|
||||
{
|
||||
Sequence *seq;
|
||||
TStripElem *se;
|
||||
@ -3101,11 +3084,11 @@ void free_imbuf_seq(ListBase * seqbase, int check_mem_usage)
|
||||
if(seq->type==SEQ_MOVIE)
|
||||
free_anim_seq(seq);
|
||||
if(seq->type==SEQ_SPEED) {
|
||||
sequence_effect_speed_rebuild_map(seq, 1);
|
||||
sequence_effect_speed_rebuild_map(scene, seq, 1);
|
||||
}
|
||||
}
|
||||
if(seq->type==SEQ_META) {
|
||||
free_imbuf_seq(&seq->seqbase, FALSE);
|
||||
free_imbuf_seq(scene, &seq->seqbase, FALSE);
|
||||
}
|
||||
if(seq->type==SEQ_SCENE) {
|
||||
/* FIXME: recurs downwards,
|
||||
@ -3154,7 +3137,7 @@ static int update_changed_seq_recurs(Scene *scene, Sequence *seq, Sequence *chan
|
||||
if(seq->type == SEQ_MOVIE)
|
||||
free_anim_seq(seq);
|
||||
if(seq->type == SEQ_SPEED) {
|
||||
sequence_effect_speed_rebuild_map(seq, 1);
|
||||
sequence_effect_speed_rebuild_map(scene, seq, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3187,6 +3170,7 @@ void free_imbuf_seq()
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 0 // XXX old animation system
|
||||
static void free_imbuf_seq_with_ipo(Scene *scene, struct Ipo *ipo)
|
||||
{
|
||||
/* force update of all sequences with this ipo, on ipo changes */
|
||||
@ -3206,6 +3190,7 @@ static void free_imbuf_seq_with_ipo(Scene *scene, struct Ipo *ipo)
|
||||
}
|
||||
SEQ_END
|
||||
}
|
||||
#endif
|
||||
|
||||
/* seq funcs's for transforming internally
|
||||
notice the difference between start/end and left/right.
|
||||
@ -3498,3 +3483,205 @@ void seq_update_sound(struct Sequence *seq)
|
||||
seq->sound_handle->changed = -1;
|
||||
}
|
||||
}
|
||||
|
||||
Sequence *active_seq_get(Scene *scene)
|
||||
{
|
||||
Editing *ed= seq_give_editing(scene, FALSE);
|
||||
if(ed==NULL) return NULL;
|
||||
return ed->act_seq;
|
||||
}
|
||||
|
||||
void active_seq_set(Scene *scene, Sequence *seq)
|
||||
{
|
||||
Editing *ed= seq_give_editing(scene, FALSE);
|
||||
if(ed==NULL) return;
|
||||
|
||||
ed->act_seq= seq;
|
||||
}
|
||||
|
||||
/* api like funcs for adding */
|
||||
|
||||
void seq_load_apply(Scene *scene, Sequence *seq, SeqLoadInfo *seq_load)
|
||||
{
|
||||
if(seq) {
|
||||
strcpy(seq->name, seq_load->name);
|
||||
seqUniqueName(scene->ed->seqbasep, seq);
|
||||
|
||||
if(seq_load->flag & SEQ_LOAD_FRAME_ADVANCE) {
|
||||
seq_load->start_frame += (seq->enddisp - seq->startdisp);
|
||||
}
|
||||
|
||||
if(seq_load->flag & SEQ_LOAD_REPLACE_SEL) {
|
||||
seq_load->flag |= 1; /* SELECT */
|
||||
active_seq_set(scene, seq);
|
||||
}
|
||||
|
||||
if(seq_load->flag & SEQ_LOAD_SOUND_CACHE) {
|
||||
if(seq->sound)
|
||||
sound_cache(seq->sound, 0);
|
||||
}
|
||||
|
||||
seq_load->tot_success++;
|
||||
}
|
||||
else {
|
||||
seq_load->tot_error++;
|
||||
}
|
||||
}
|
||||
|
||||
Sequence *alloc_sequence(ListBase *lb, int cfra, int machine)
|
||||
{
|
||||
Sequence *seq;
|
||||
|
||||
seq= MEM_callocN( sizeof(Sequence), "addseq");
|
||||
BLI_addtail(lb, seq);
|
||||
|
||||
*( (short *)seq->name )= ID_SEQ;
|
||||
seq->name[2]= 0;
|
||||
|
||||
seq->flag= 1; /* SELECT */
|
||||
seq->start= cfra;
|
||||
seq->machine= machine;
|
||||
seq->mul= 1.0;
|
||||
seq->blend_opacity = 100.0;
|
||||
|
||||
return seq;
|
||||
}
|
||||
|
||||
void seqUniqueName(ListBase *seqbasep, Sequence *seq)
|
||||
{
|
||||
BLI_uniquename(seqbasep, seq, "Sequence", '.', offsetof(Sequence, name), SEQ_NAME_MAXSTR);
|
||||
}
|
||||
|
||||
/* NOTE: this function doesn't fill in iamge names */
|
||||
Sequence *sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
|
||||
{
|
||||
Scene *scene= CTX_data_scene(C); /* only for active seq */
|
||||
Sequence *seq;
|
||||
Strip *strip;
|
||||
StripElem *se;
|
||||
|
||||
seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel);
|
||||
seq->type= SEQ_IMAGE;
|
||||
BLI_strncpy(seq->name+2, "Image", SEQ_NAME_MAXSTR-2);
|
||||
seqUniqueName(seqbasep, seq);
|
||||
|
||||
/* basic defaults */
|
||||
seq->strip= strip= MEM_callocN(sizeof(Strip), "strip");
|
||||
|
||||
strip->len = seq->len = seq_load->len ? seq_load->len : 1;
|
||||
strip->us= 1;
|
||||
strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
|
||||
BLI_split_dirfile_basic(seq_load->path, strip->dir, se->name);
|
||||
|
||||
seq_load_apply(scene, seq, seq_load);
|
||||
|
||||
return seq;
|
||||
}
|
||||
|
||||
Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
|
||||
{
|
||||
Scene *scene= CTX_data_scene(C); /* only for sound */
|
||||
Editing *ed= seq_give_editing(scene, TRUE);
|
||||
bSound *sound;
|
||||
|
||||
Sequence *seq; /* generic strip vars */
|
||||
Strip *strip;
|
||||
StripElem *se;
|
||||
|
||||
AUD_SoundInfo info;
|
||||
|
||||
sound = sound_new_file(CTX_data_main(C), seq_load->path);
|
||||
|
||||
if (sound==NULL || sound->handle == NULL) {
|
||||
//if(op)
|
||||
// BKE_report(op->reports, RPT_ERROR, "Unsupported audio format");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
info = AUD_getInfo(sound->handle);
|
||||
|
||||
if (info.specs.format == AUD_FORMAT_INVALID) {
|
||||
sound_delete(C, sound);
|
||||
//if(op)
|
||||
// BKE_report(op->reports, RPT_ERROR, "Unsupported audio format");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel);
|
||||
|
||||
seq->type= SEQ_SOUND;
|
||||
seq->sound= sound;
|
||||
BLI_strncpy(seq->name+2, "Sound", SEQ_NAME_MAXSTR-2);
|
||||
seqUniqueName(seqbasep, seq);
|
||||
|
||||
/* basic defaults */
|
||||
seq->strip= strip= MEM_callocN(sizeof(Strip), "strip");
|
||||
strip->len = seq->len = (int) (info.length * FPS);
|
||||
strip->us= 1;
|
||||
|
||||
strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
|
||||
|
||||
BLI_split_dirfile_basic(seq_load->path, strip->dir, se->name);
|
||||
|
||||
seq->sound_handle = sound_new_handle(scene, sound, seq_load->start_frame, seq_load->start_frame + strip->len, 0);
|
||||
|
||||
calc_sequence_disp(seq);
|
||||
|
||||
/* last active name */
|
||||
strncpy(ed->act_sounddir, strip->dir, FILE_MAXDIR-1);
|
||||
|
||||
seq_load_apply(scene, seq, seq_load);
|
||||
|
||||
return seq;
|
||||
}
|
||||
|
||||
Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
|
||||
{
|
||||
Scene *scene= CTX_data_scene(C); /* only for sound */
|
||||
|
||||
Sequence *seq, *soundseq; /* generic strip vars */
|
||||
Strip *strip;
|
||||
StripElem *se;
|
||||
|
||||
struct anim *an;
|
||||
|
||||
an = openanim(seq_load->path, IB_rect);
|
||||
|
||||
if(an==NULL)
|
||||
return NULL;
|
||||
|
||||
seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel);
|
||||
|
||||
seq->type= SEQ_MOVIE;
|
||||
seq->anim= an;
|
||||
seq->anim_preseek = IMB_anim_get_preseek(an);
|
||||
BLI_strncpy(seq->name+2, "Movie", SEQ_NAME_MAXSTR-2);
|
||||
seqUniqueName(seqbasep, seq);
|
||||
|
||||
/* basic defaults */
|
||||
seq->strip= strip= MEM_callocN(sizeof(Strip), "strip");
|
||||
strip->len = seq->len = IMB_anim_get_duration( an );
|
||||
strip->us= 1;
|
||||
|
||||
strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
|
||||
|
||||
BLI_split_dirfile_basic(seq_load->path, strip->dir, se->name);
|
||||
|
||||
calc_sequence_disp(seq);
|
||||
|
||||
|
||||
if(seq_load->flag & SEQ_LOAD_MOVIE_SOUND) {
|
||||
int start_frame_back= seq_load->start_frame;
|
||||
seq_load->channel++;
|
||||
|
||||
soundseq = sequencer_add_sound_strip(C, seqbasep, seq_load);
|
||||
|
||||
seq_load->start_frame= start_frame_back;
|
||||
seq_load->channel--;
|
||||
}
|
||||
|
||||
/* can be NULL */
|
||||
seq_load_apply(scene, seq, seq_load);
|
||||
|
||||
return seq;
|
||||
}
|
||||
|
@ -109,6 +109,16 @@ typedef struct BodyFace {
|
||||
short flag;
|
||||
} BodyFace;
|
||||
|
||||
typedef struct ReferenceVert {
|
||||
float pos[3]; /* position relative to com */
|
||||
float mass; /* node mass */
|
||||
} ReferenceVert;
|
||||
|
||||
typedef struct ReferenceState {
|
||||
float com[3]; /* center of mass*/
|
||||
ReferenceVert *ivert; /* list of intial values */
|
||||
}ReferenceState ;
|
||||
|
||||
|
||||
/*private scratch pad for caching and other data only needed when alive*/
|
||||
typedef struct SBScratch {
|
||||
@ -118,6 +128,7 @@ typedef struct SBScratch {
|
||||
BodyFace *bodyface;
|
||||
int totface;
|
||||
float aabbmin[3],aabbmax[3];
|
||||
ReferenceState Ref;
|
||||
}SBScratch;
|
||||
|
||||
typedef struct SB_thread_context {
|
||||
@ -594,7 +605,7 @@ static void add_mesh_quad_diag_springs(Object *ob)
|
||||
|
||||
if (ob->soft){
|
||||
int nofquads;
|
||||
float s_shear = ob->soft->shearstiff*ob->soft->shearstiff;
|
||||
//float s_shear = ob->soft->shearstiff*ob->soft->shearstiff;
|
||||
|
||||
nofquads = count_mesh_quads(me);
|
||||
if (nofquads) {
|
||||
@ -883,6 +894,9 @@ static void free_scratch(SoftBody *sb)
|
||||
if (sb->scratch->bodyface){
|
||||
MEM_freeN(sb->scratch->bodyface);
|
||||
}
|
||||
if (sb->scratch->Ref.ivert){
|
||||
MEM_freeN(sb->scratch->Ref.ivert);
|
||||
}
|
||||
MEM_freeN(sb->scratch);
|
||||
sb->scratch = NULL;
|
||||
}
|
||||
@ -3333,6 +3347,27 @@ static void mesh_faces_to_scratch(Object *ob)
|
||||
}
|
||||
sb->scratch->totface = me->totface;
|
||||
}
|
||||
static void reference_to_scratch(Object *ob)
|
||||
{
|
||||
SoftBody *sb= ob->soft;
|
||||
ReferenceVert *rp;
|
||||
BodyPoint *bp;
|
||||
float accu_pos[3] ={0.f,0.f,0.f};
|
||||
float accu_mass = 0.f;
|
||||
int a;
|
||||
|
||||
sb->scratch->Ref.ivert = MEM_mallocN(sizeof(ReferenceVert)*sb->totpoint,"SB_Reference");
|
||||
bp= ob->soft->bpoint;
|
||||
rp= sb->scratch->Ref.ivert;
|
||||
for(a=0; a<sb->totpoint; a++, rp++, bp++) {
|
||||
VECCOPY(rp->pos,bp->pos);
|
||||
VECADD(accu_pos,accu_pos,bp->pos);
|
||||
accu_mass += bp-> mass;
|
||||
}
|
||||
mul_v3_fl(accu_pos,1.0f/accu_mass);
|
||||
VECCOPY(sb->scratch->Ref.com,accu_pos);
|
||||
/* printf("reference_to_scratch \n"); */
|
||||
}
|
||||
|
||||
/*
|
||||
helper function to get proper spring length
|
||||
@ -3570,16 +3605,19 @@ static void curve_surf_to_softbody(Scene *scene, Object *ob)
|
||||
/* copies softbody result back in object */
|
||||
static void softbody_to_object(Object *ob, float (*vertexCos)[3], int numVerts, int local)
|
||||
{
|
||||
BodyPoint *bp= ob->soft->bpoint;
|
||||
int a;
|
||||
SoftBody *sb= ob->soft;
|
||||
if(sb){
|
||||
BodyPoint *bp= sb->bpoint;
|
||||
int a;
|
||||
if(sb->solverflags & SBSO_MONITOR ||sb->solverflags & SBSO_ESTIMATEIPO){SB_estimate_transform(ob,sb->lcom,sb->lrot,sb->lscale);}
|
||||
/* inverse matrix is not uptodate... */
|
||||
invert_m4_m4(ob->imat, ob->obmat);
|
||||
|
||||
/* inverse matrix is not uptodate... */
|
||||
invert_m4_m4(ob->imat, ob->obmat);
|
||||
|
||||
for(a=0; a<numVerts; a++, bp++) {
|
||||
VECCOPY(vertexCos[a], bp->pos);
|
||||
if(local==0)
|
||||
mul_m4_v3(ob->imat, vertexCos[a]); /* softbody is in global coords, baked optionally not */
|
||||
for(a=0; a<numVerts; a++, bp++) {
|
||||
VECCOPY(vertexCos[a], bp->pos);
|
||||
if(local==0)
|
||||
mul_m4_v3(ob->imat, vertexCos[a]); /* softbody is in global coords, baked optionally not */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3593,6 +3631,7 @@ static void sb_new_scratch(SoftBody *sb)
|
||||
sb->scratch->totface = 0;
|
||||
sb->scratch->aabbmax[0]=sb->scratch->aabbmax[1]=sb->scratch->aabbmax[2] = 1.0e30f;
|
||||
sb->scratch->aabbmin[0]=sb->scratch->aabbmin[1]=sb->scratch->aabbmin[2] = -1.0e30f;
|
||||
sb->scratch->Ref.ivert = NULL;
|
||||
|
||||
}
|
||||
/* --- ************ maintaining scratch *************** */
|
||||
@ -3714,6 +3753,178 @@ static void softbody_update_positions(Object *ob, SoftBody *sb, float (*vertexCo
|
||||
}
|
||||
}
|
||||
|
||||
/* void SB_estimate_transform */
|
||||
/* input Object *ob out (says any object that can do SB like mesh,lattice,curve )
|
||||
output float lloc[3],float lrot[3][3],float lscale[3][3]
|
||||
that is:
|
||||
a precise position vector denoting the motion of the center of mass
|
||||
give a rotation/scale matrix using averaging method, that's why estimate and not calculate
|
||||
see: this is kind of reverse engeneering: having to states of a point cloud and recover what happend
|
||||
our advantage here we know the identity of the vertex
|
||||
there are others methods giving other results.
|
||||
lloc,lrot,lscale are allowed to be NULL, just in case you don't need it.
|
||||
should be pretty useful for pythoneers :)
|
||||
not! velocity .. 2nd order stuff
|
||||
*/
|
||||
|
||||
/* can't believe there is none in math utils */
|
||||
float _det_m3(float m2[3][3])
|
||||
{
|
||||
float det = 0.f;
|
||||
if (m2){
|
||||
det= m2[0][0]* (m2[1][1]*m2[2][2] - m2[1][2]*m2[2][1])
|
||||
-m2[1][0]* (m2[0][1]*m2[2][2] - m2[0][2]*m2[2][1])
|
||||
+m2[2][0]* (m2[0][1]*m2[1][2] - m2[0][2]*m2[1][1]);
|
||||
}
|
||||
return det;
|
||||
}
|
||||
|
||||
void SB_estimate_transform(Object *ob,float lloc[3],float lrot[3][3],float lscale[3][3])
|
||||
{
|
||||
BodyPoint *bp;
|
||||
ReferenceVert *rp;
|
||||
float accu_pos[3] = {0.0f,0.0f,0.0f};
|
||||
float com[3],va[3],vb[3],rcom[3];
|
||||
float accu_mass = 0.0f,la = 0.0f,lb = 0.0f,eps = 0.000001f;
|
||||
SoftBody *sb = 0;
|
||||
int a,i=0,imax=16;
|
||||
int _localdebug;
|
||||
|
||||
if (lloc) zero_v3(lloc);
|
||||
if (lrot) zero_m3(lrot);
|
||||
if (lscale) zero_m3(lscale);
|
||||
|
||||
|
||||
if(!ob ||!ob->soft) return; /* why did we get here ? */
|
||||
sb= ob->soft;
|
||||
/*for threading there should be a lock */
|
||||
/* sb-> lock; */
|
||||
/* calculate center of mass */
|
||||
if(!sb || !sb->bpoint) return;
|
||||
_localdebug=sb->solverflags & SBSO_MONITOR; /* turn this on/off if you (don't) want to see progress on console */
|
||||
for(a=0,bp=sb->bpoint; a<sb->totpoint; a++, bp++) {
|
||||
VECADD(accu_pos,accu_pos,bp->pos);
|
||||
accu_mass += bp->mass;
|
||||
}
|
||||
VECCOPY(com,accu_pos);
|
||||
mul_v3_fl(com,1.0f/accu_mass);
|
||||
/* center of mass done*/
|
||||
if (sb->scratch){
|
||||
float dcom[3],stunt[3];
|
||||
float m[3][3],mr[3][3],q[3][3],qi[3][3];
|
||||
float odet,ndet;
|
||||
zero_m3(m);
|
||||
zero_m3(mr);
|
||||
VECSUB(dcom,com,sb->scratch->Ref.com);
|
||||
VECCOPY(rcom,sb->scratch->Ref.com);
|
||||
if (_localdebug) {
|
||||
printf("DCOM %f %f %f\n",dcom[0],dcom[1],dcom[2]);
|
||||
}
|
||||
if (lloc) VECCOPY(lloc,dcom);
|
||||
VECCOPY(sb->lcom,dcom);
|
||||
/* build 'projection' matrix */
|
||||
for(a=0, bp=sb->bpoint, rp=sb->scratch->Ref.ivert; a<sb->totpoint; a++, bp++, rp++) {
|
||||
VECSUB(va,rp->pos,rcom);
|
||||
la += len_v3(va);
|
||||
/* mul_v3_fl(va,bp->mass); mass needs renormalzation here ?? */
|
||||
VECSUB(vb,bp->pos,com);
|
||||
lb += len_v3(vb);
|
||||
/* mul_v3_fl(va,rp->mass); */
|
||||
m[0][0] += va[0] * vb[0];
|
||||
m[0][1] += va[0] * vb[1];
|
||||
m[0][2] += va[0] * vb[2];
|
||||
|
||||
m[1][0] += va[1] * vb[0];
|
||||
m[1][1] += va[1] * vb[1];
|
||||
m[1][2] += va[1] * vb[2];
|
||||
|
||||
m[2][0] += va[2] * vb[0];
|
||||
m[2][1] += va[2] * vb[1];
|
||||
m[2][2] += va[2] * vb[2];
|
||||
|
||||
/* building the referenc matrix on the fly
|
||||
needed to scale properly later*/
|
||||
|
||||
mr[0][0] += va[0] * va[0];
|
||||
mr[0][1] += va[0] * va[1];
|
||||
mr[0][2] += va[0] * va[2];
|
||||
|
||||
mr[1][0] += va[1] * va[0];
|
||||
mr[1][1] += va[1] * va[1];
|
||||
mr[1][2] += va[1] * va[2];
|
||||
|
||||
mr[2][0] += va[2] * va[0];
|
||||
mr[2][1] += va[2] * va[1];
|
||||
mr[2][2] += va[2] * va[2];
|
||||
}
|
||||
/* we are pretty much set up here and we could return that raw mess containing essential information
|
||||
but being nice fellows we proceed:
|
||||
knowing we did split off the tanslational part to the center of mass (com) part
|
||||
however let's do some more reverse engeneering and see if we can split
|
||||
rotation from scale ->Polardecompose
|
||||
*/
|
||||
copy_m3_m3(q,m);
|
||||
stunt[0] = q[0][0]; stunt[1] = q[1][1]; stunt[2] = q[2][2];
|
||||
/* nothing to see here but renormalizing works nicely
|
||||
printf("lenght stunt %5.3f a %5.3f b %5.3f %5.3f\n",len_v3(stunt),la,lb,sqrt(la*lb));
|
||||
*/
|
||||
mul_m3_fl(q,1.f/len_v3(stunt));
|
||||
/* not too much to see here
|
||||
if(_localdebug){
|
||||
printf("q0 %5.3f %5.3f %5.3f\n",q[0][0],q[0][1],q[0][2]);
|
||||
printf("q1 %5.3f %5.3f %5.3f\n",q[1][0],q[1][1],q[1][2]);
|
||||
printf("q2 %5.3f %5.3f %5.3f\n",q[2][0],q[2][1],q[2][2]);
|
||||
}
|
||||
*/
|
||||
/* this is pretty much Polardecompose 'inline' the algo based on Higham's thesis */
|
||||
/* without the far case !!! but seems to work here pretty neat */
|
||||
odet = 0.f;
|
||||
ndet = _det_m3(q);
|
||||
while((odet-ndet)*(odet-ndet) > eps && i<imax){
|
||||
invert_m3_m3(qi,q);
|
||||
transpose_m3(qi);
|
||||
add_m3_m3m3(q,q,qi);
|
||||
mul_m3_fl(q,0.5f);
|
||||
odet =ndet;
|
||||
ndet =_det_m3(q);
|
||||
i++;
|
||||
}
|
||||
if (i){
|
||||
float scale[3][3];
|
||||
float irot[3][3];
|
||||
if(lrot) copy_m3_m3(lrot,q);
|
||||
copy_m3_m3(sb->lrot,q);
|
||||
if(_localdebug){
|
||||
printf("Rot .. i %d\n",i);
|
||||
printf("!q0 %5.3f %5.3f %5.3f\n",q[0][0],q[0][1],q[0][2]);
|
||||
printf("!q1 %5.3f %5.3f %5.3f\n",q[1][0],q[1][1],q[1][2]);
|
||||
printf("!q2 %5.3f %5.3f %5.3f\n",q[2][0],q[2][1],q[2][2]);
|
||||
}
|
||||
invert_m3_m3(irot,q);
|
||||
/* now that's where we need mr to get scaling right */
|
||||
invert_m3_m3(qi,mr);
|
||||
mul_m3_m3m3(q,m,qi);
|
||||
|
||||
//mul_m3_m3m3(scale,q,irot);
|
||||
mul_m3_m3m3(scale,irot,q); /* i always have a problem with this C functions left/right operator applies first*/
|
||||
mul_m3_fl(scale,lb/la); /* 0 order scale was normalized away so put it back here dunno if that is needed here ???*/
|
||||
|
||||
if(lscale) copy_m3_m3(lscale,scale);
|
||||
copy_m3_m3(sb->lscale,scale);
|
||||
if(_localdebug){
|
||||
printf("Scale .. \n");
|
||||
printf("!s0 %5.3f %5.3f %5.3f\n",scale[0][0],scale[0][1],scale[0][2]);
|
||||
printf("!s1 %5.3f %5.3f %5.3f\n",scale[1][0],scale[1][1],scale[1][2]);
|
||||
printf("!s2 %5.3f %5.3f %5.3f\n",scale[2][0],scale[2][1],scale[2][2]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
/*for threading there should be a unlock */
|
||||
/* sb-> unlock; */
|
||||
}
|
||||
|
||||
static void softbody_reset(Object *ob, SoftBody *sb, float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
BodyPoint *bp;
|
||||
@ -3751,6 +3962,7 @@ static void softbody_reset(Object *ob, SoftBody *sb, float (*vertexCos)[3], int
|
||||
sb->scratch->needstobuildcollider=1;
|
||||
|
||||
/* copy some info to scratch */
|
||||
if (1) reference_to_scratch(ob); /* wa only need that if we want to reconstruct IPO */
|
||||
switch(ob->type) {
|
||||
case OB_MESH:
|
||||
if (ob->softflag & OB_SB_FACECOLL) mesh_faces_to_scratch(ob);
|
||||
@ -3933,7 +4145,6 @@ void sbObjectStep(Scene *scene, Object *ob, float cfra, float (*vertexCos)[3], i
|
||||
cache->flag &= ~PTCACHE_SIMULATION_VALID;
|
||||
cache->simframe= 0;
|
||||
//cache->last_exact= 0;
|
||||
|
||||
return;
|
||||
}
|
||||
else if(framenr > endframe) {
|
||||
@ -3968,22 +4179,23 @@ void sbObjectStep(Scene *scene, Object *ob, float cfra, float (*vertexCos)[3], i
|
||||
if(BKE_ptcache_get_continue_physics()) {
|
||||
cache->flag &= ~PTCACHE_SIMULATION_VALID;
|
||||
cache->simframe= 0;
|
||||
|
||||
/* do simulation */
|
||||
dtime = timescale;
|
||||
|
||||
softbody_update_positions(ob, sb, vertexCos, numVerts);
|
||||
softbody_step(scene, ob, sb, dtime);
|
||||
if(sb->solverflags & SBSO_MONITOR ){
|
||||
printf("Picked from cache continue_physics %d\n",framenr);
|
||||
}
|
||||
|
||||
softbody_to_object(ob, vertexCos, numVerts, 0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* still no points? go away */
|
||||
if(sb->totpoint==0) return;
|
||||
|
||||
if(framenr == startframe) {
|
||||
if(sb->totpoint==0) {
|
||||
return;
|
||||
}
|
||||
if(framenr == startframe) {
|
||||
BKE_ptcache_id_reset(scene, &pid, PTCACHE_RESET_OUTDATED);
|
||||
|
||||
/* first frame, no simulation to do, just set the positions */
|
||||
@ -3999,6 +4211,9 @@ void sbObjectStep(Scene *scene, Object *ob, float cfra, float (*vertexCos)[3], i
|
||||
cache_result = BKE_ptcache_read_cache(&pid, framenr, scene->r.frs_sec);
|
||||
|
||||
if(cache_result == PTCACHE_READ_EXACT || cache_result == PTCACHE_READ_INTERPOLATED) {
|
||||
if(sb->solverflags & SBSO_MONITOR ){
|
||||
printf("Picked from cache at frame %d\n",framenr);
|
||||
}
|
||||
softbody_to_object(ob, vertexCos, numVerts, sb->local);
|
||||
|
||||
cache->simframe= framenr;
|
||||
@ -4036,7 +4251,6 @@ void sbObjectStep(Scene *scene, Object *ob, float cfra, float (*vertexCos)[3], i
|
||||
|
||||
cache->simframe= framenr;
|
||||
cache->flag |= PTCACHE_SIMULATION_VALID;
|
||||
|
||||
BKE_ptcache_write_cache(&pid, framenr);
|
||||
}
|
||||
|
||||
|
@ -384,6 +384,8 @@ void sound_update_playing(struct bContext *C)
|
||||
}
|
||||
}
|
||||
|
||||
AUD_setSoundVolume(handle->handle, handle->volume);
|
||||
|
||||
if(action & 1)
|
||||
{
|
||||
if(handle->state == AUD_STATUS_INVALID)
|
||||
@ -469,6 +471,8 @@ AUD_Device* sound_mixdown(struct Scene *scene, AUD_Specs specs, int start, int e
|
||||
s = 0;
|
||||
}
|
||||
|
||||
AUD_setSoundVolume(handle->handle, handle->volume);
|
||||
|
||||
limiter = AUD_limitSound(handle->source->handle, frameskip / fps, e / fps);
|
||||
delayer = AUD_delaySound(limiter, s / fps);
|
||||
|
||||
|
@ -2354,6 +2354,17 @@ void txt_backspace_word (Text *text)
|
||||
txt_delete_sel(text);
|
||||
}
|
||||
|
||||
/* Max spaces to replace a tab with, currently hardcoded to TXT_TABSIZE = 4.
|
||||
* Used by txt_convert_tab_to_spaces, indent and unintent.
|
||||
* Remember to change this string according to max tab size */
|
||||
static char tab_to_spaces[] = " ";
|
||||
|
||||
static void txt_convert_tab_to_spaces (Text *text)
|
||||
{
|
||||
char *sb = &tab_to_spaces[text->curl->len % TXT_TABSIZE];
|
||||
txt_insert_buf(text, sb);
|
||||
}
|
||||
|
||||
int txt_add_char (Text *text, char add)
|
||||
{
|
||||
int len, lineno;
|
||||
@ -2368,6 +2379,12 @@ int txt_add_char (Text *text, char add)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* insert spaces rather then tabs */
|
||||
if (add == '\t') {
|
||||
txt_convert_tab_to_spaces(text);
|
||||
return 1;
|
||||
}
|
||||
|
||||
txt_delete_sel(text);
|
||||
|
||||
mrk= txt_find_marker_region(text, text->curl, text->curc-1, text->curl->len, 0, 0);
|
||||
@ -2443,7 +2460,13 @@ void indent(Text *text)
|
||||
{
|
||||
int len, num;
|
||||
char *tmp;
|
||||
char add = '\t';
|
||||
/* char *addtab = "\t";
|
||||
int tablen = 1; */
|
||||
/* hardcoded: TXT_TABSIZE = 4 spaces: */
|
||||
int spaceslen = TXT_TABSIZE;
|
||||
/* hardcoded: use spaces: */
|
||||
char *add = tab_to_spaces;
|
||||
int indentlen = spaceslen;
|
||||
|
||||
if (!text) return;
|
||||
if (!text->curl) return;
|
||||
@ -2452,19 +2475,19 @@ void indent(Text *text)
|
||||
num = 0;
|
||||
while (TRUE)
|
||||
{
|
||||
tmp= MEM_mallocN(text->curl->len+2, "textline_string");
|
||||
tmp= MEM_mallocN(text->curl->len+indentlen+1, "textline_string");
|
||||
|
||||
text->curc = 0;
|
||||
if(text->curc) memcpy(tmp, text->curl->line, text->curc);
|
||||
tmp[text->curc]= add;
|
||||
if(text->curc) memcpy(tmp, text->curl->line, text->curc); /* XXX never true, check prev line */
|
||||
memcpy(tmp+text->curc, add, indentlen);
|
||||
|
||||
len= text->curl->len - text->curc;
|
||||
if(len>0) memcpy(tmp+text->curc+1, text->curl->line+text->curc, len);
|
||||
tmp[text->curl->len+1]=0;
|
||||
if(len>0) memcpy(tmp+text->curc+indentlen, text->curl->line+text->curc, len);
|
||||
tmp[text->curl->len+indentlen]= 0;
|
||||
|
||||
make_new_line(text->curl, tmp);
|
||||
|
||||
text->curc++;
|
||||
text->curc+= indentlen;
|
||||
|
||||
txt_make_dirty(text);
|
||||
txt_clean_text(text);
|
||||
@ -2494,7 +2517,11 @@ void indent(Text *text)
|
||||
void unindent(Text *text)
|
||||
{
|
||||
int num = 0;
|
||||
char remove = '\t';
|
||||
/* char *rmtab = "\t"; */
|
||||
char *remove = tab_to_spaces;
|
||||
/* int indenttab = 1; */
|
||||
int indentspaces = TXT_TABSIZE;
|
||||
int indent = indentspaces;
|
||||
|
||||
if (!text) return;
|
||||
if (!text->curl) return;
|
||||
@ -2504,16 +2531,15 @@ void unindent(Text *text)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
if (text->curl->line[i] == remove)
|
||||
if (BLI_strncasecmp(text->curl->line, remove, indent) == 0)
|
||||
{
|
||||
while(i< text->curl->len) {
|
||||
text->curl->line[i]= text->curl->line[i+1];
|
||||
text->curl->line[i]= text->curl->line[i+indent];
|
||||
i++;
|
||||
}
|
||||
text->curl->len--;
|
||||
text->curl->len-= indent;
|
||||
}
|
||||
|
||||
|
||||
txt_make_dirty(text);
|
||||
txt_clean_text(text);
|
||||
|
||||
|
@ -54,10 +54,10 @@ typedef struct DLRBT_Node {
|
||||
} DLRBT_Node;
|
||||
|
||||
/* Red/Black defines for tree_col */
|
||||
enum eDLRBT_Colors {
|
||||
typedef enum eDLRBT_Colors {
|
||||
DLRBT_BLACK= 0,
|
||||
DLRBT_RED,
|
||||
};
|
||||
} eDLRBT_Colors;
|
||||
|
||||
/* -------- */
|
||||
|
||||
@ -70,9 +70,30 @@ typedef struct DLRBT_Tree {
|
||||
void *root; /* this should be based on DLRBT_Node-s */
|
||||
} DLRBT_Tree;
|
||||
|
||||
/* Callback Types --------------------------------- */
|
||||
|
||||
/* return -1, 0, 1 for whether the given data is less than, equal to, or greater than the given node
|
||||
* - node: <DLRBT_Node> the node to compare to
|
||||
* - data: pointer to the relevant data or values stored in the bitpattern dependant on the function
|
||||
*/
|
||||
typedef short (*DLRBT_Comparator_FP)(void *node, void *data);
|
||||
|
||||
/* return a new node instance wrapping the given data
|
||||
* - data: pointer to the relevant data to create a subclass of node from
|
||||
*/
|
||||
typedef DLRBT_Node *(*DLRBT_NAlloc_FP)(void *data);
|
||||
|
||||
/* update an existing node instance accordingly to be in sync with the given data *
|
||||
* - node: <DLRBT_Node> the node to update
|
||||
* - data: pointer to the relevant data or values stored in the bitpattern dependant on the function
|
||||
*/
|
||||
typedef void (*DLRBT_NUpdate_FP)(void *node, void *data);
|
||||
|
||||
/* ********************************************** */
|
||||
/* Public API */
|
||||
|
||||
/* ADT Management ------------------------------- */
|
||||
|
||||
/* Create a new tree, and initialise as necessary */
|
||||
DLRBT_Tree *BLI_dlrbTree_new(void);
|
||||
|
||||
@ -86,16 +107,52 @@ void BLI_dlrbTree_free(DLRBT_Tree *tree);
|
||||
void BLI_dlrbTree_linkedlist_sync(DLRBT_Tree *tree);
|
||||
|
||||
|
||||
/* Searching ------------------------------------ */
|
||||
|
||||
/* Balance the tree after the given element has been added to it
|
||||
* (using custom code, in the Binary Tree way).
|
||||
/* Find the node which matches or is the closest to the requested node */
|
||||
DLRBT_Node *BLI_dlrbTree_search(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb, void *search_data);
|
||||
|
||||
/* Find the node which exactly matches the required data */
|
||||
DLRBT_Node *BLI_dlrbTree_search_exact(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb, void *search_data);
|
||||
|
||||
/* Find the node which occurs immediately before the best matching node */
|
||||
DLRBT_Node *BLI_dlrbTree_search_prev(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb, void *search_data);
|
||||
|
||||
/* Find the node which occurs immediately after the best matching node */
|
||||
DLRBT_Node *BLI_dlrbTree_search_next(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb, void *search_data);
|
||||
|
||||
|
||||
/* Check whether there is a node matching the requested node */
|
||||
short BLI_dlrbTree_contains(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb, void *search_data);
|
||||
|
||||
|
||||
/* Node Operations (Managed) --------------------- */
|
||||
/* These methods automate the process of adding/removing nodes from the BST,
|
||||
* using the supplied data and callbacks
|
||||
*/
|
||||
void BLI_dlrbTree_insert(DLRBT_Tree *tree, DLRBT_Node *node);
|
||||
|
||||
/* Add the given data to the tree, and return the node added */
|
||||
// NOTE: for duplicates, the update_cb is called (if available), and the existing node is returned
|
||||
DLRBT_Node *BLI_dlrbTree_add(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb,
|
||||
DLRBT_NAlloc_FP new_cb, DLRBT_NUpdate_FP update_cb, void *data);
|
||||
|
||||
|
||||
/* Remove the given element from the tree and balance again */
|
||||
// FIXME: this is not implemented yet...
|
||||
void BLI_dlrbTree_remove(DLRBT_Tree *tree, DLRBT_Node *node);
|
||||
|
||||
/* Node Operations (Manual) --------------------- */
|
||||
/* These methods require custom code for creating BST nodes and adding them to the
|
||||
* tree in special ways, such that the node can then be balanced.
|
||||
*
|
||||
* It is recommended that these methods are only used where the other method is too cumbersome...
|
||||
*/
|
||||
|
||||
/* Balance the tree after the given node has been added to it
|
||||
* (using custom code, in the Binary Tree way).
|
||||
*/
|
||||
void BLI_dlrbTree_insert(DLRBT_Tree *tree, DLRBT_Node *node);
|
||||
|
||||
/* ********************************************** */
|
||||
|
||||
#endif // BLI_DLRB_TREE_H
|
||||
|
@ -99,6 +99,7 @@ void interp_v2_v2v2(float r[2], float a[2], float b[2], float t);
|
||||
void interp_v2_v2v2v2(float r[2], float a[2], float b[2], float c[3], float t[3]);
|
||||
void interp_v3_v3v3(float r[3], float a[3], float b[3], float t);
|
||||
void interp_v3_v3v3v3(float p[3], float v1[3], float v2[3], float v3[3], float w[3]);
|
||||
void interp_v3_v3v3v3v3(float p[3], float v1[3], float v2[3], float v3[3], float v4[3], float w[4]);
|
||||
|
||||
void mid_v3_v3v3(float r[3], float a[3], float b[3]);
|
||||
|
||||
|
@ -27,9 +27,9 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#ifndef WIN32
|
||||
#include <libgen.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/param.h>
|
||||
// #include <libgen.h>
|
||||
#else
|
||||
#include <io.h>
|
||||
#include "BLI_winstuff.h"
|
||||
|
@ -332,10 +332,12 @@ static void sort(BVHNode **a0, int begin, int end, int axis)
|
||||
bvh_insertionsort(a, begin, end, axis);
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
static void sort_along_axis(BVHTree *tree, int start, int end, int axis)
|
||||
{
|
||||
sort(tree->nodes, start, end, axis);
|
||||
}
|
||||
#endif
|
||||
|
||||
//after a call to this function you can expect one of:
|
||||
// every node to left of a[n] are smaller or equal to it
|
||||
@ -1532,6 +1534,7 @@ static void dfs_raycast(BVHRayCastData *data, BVHNode *node)
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void iterative_raycast(BVHRayCastData *data, BVHNode *node)
|
||||
{
|
||||
while(node)
|
||||
@ -1562,6 +1565,7 @@ static void iterative_raycast(BVHRayCastData *data, BVHNode *node)
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
int BLI_bvhtree_ray_cast(BVHTree *tree, const float *co, const float *dir, float radius, BVHTreeRayHit *hit, BVHTree_RayCastCallback callback, void *userdata)
|
||||
{
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user