Commit Graph

127 Commits

Author SHA1 Message Date
Brecht Van Lommel
cb89decfdc Merge of first part of changes from the apricot branch, especially
the features that are needed to run the game. Compile tested with
scons, make, but not cmake, that seems to have an issue not related
to these changes. The changes include:

* GLSL support in the viewport and game engine, enable in the game
  menu in textured draw mode.
* Synced and merged part of the duplicated blender and gameengine/
  gameplayer drawing code.
* Further refactoring of game engine drawing code, especially mesh
  storage changed a lot.
* Optimizations in game engine armatures to avoid recomputations.
* A python function to get the framerate estimate in game.

* An option take object color into account in materials.
* An option to restrict shadow casters to a lamp's layers.
* Increase from 10 to 18 texture slots for materials, lamps, word.
  An extra texture slot shows up once the last slot is used.

* Memory limit for undo, not enabled by default yet because it
  needs the .B.blend to be changed.
* Multiple undo for image painting.

* An offset for dupligroups, so not all objects in a group have to
  be at the origin.
2008-09-04 20:51:28 +00:00
Hans Lambermont
b33e57952c fix settings for freebsd7 2008-08-23 13:12:17 +00:00
Brecht Van Lommel
272a91f754 Merge of apricot branch game engine changes into trunk, excluding GLSL.
GLEW
====

Added the GLEW opengl extension library into extern/, always compiled
into Blender now. This is much nicer than doing this kind of extension
management manually, and will be used in the game engine, for GLSL, and
other opengl extensions.

* According to the GLEW website it works on Windows, Linux, Mac OS X,
  FreeBSD, Irix, and Solaris. There might still be platform specific
  issues due to this commit, so let me know and I'll look into it.
* This means also that all extensions will now always be compiled in,
  regardless of the glext.h on the platform where compilation happens.

Game Engine
===========

Refactoring of the use of opengl extensions and other drawing code
in the game engine, and cleaning up some hacks related to GLSL
integration. These changes will be merged into trunk too after this.

The game engine graphics demos & apricot level survived my tests,
but this could use some good testing of course.

For users: please test with the options "Generate Display Lists" and
"Vertex Arrays" enabled, these should be the fastest and are supposed
to be "unreliable", but if that's the case that's probably due to bugs
that can be fixed.

* The game engine now also uses GLEW for extensions, replacing the
  custom opengl extensions code that was there. Removes a lot of
  #ifdef's, but the runtime checks stay of course.
* Removed the WITHOUT_GLEXT environment variable. This was added to
  work around a specific bug and only disabled multitexturing anyway.
  It might also have caused a slowdown since it was retrieving the
  environment variable for every vertex in immediate mode (bug #13680).

* Refactored the code to allow drawing skinned meshes with vertex
  arrays too, removing some specific immediate mode drawing functions
  for this that only did extra normal calculation. Now it always splits
  vertices of flat faces instead.
* Refactored normal recalculation with some minor optimizations,
  required for the above change.
* Removed some outdated code behind the __NLA_OLDDEFORM #ifdef.
* Fixed various bugs in setting of multitexture coordinates and vertex
  attributes for vertex arrays. These were not being enabled/disabled
  correct according to the opengl spec, leading to crashes. Also tangent
  attributes used an immediate mode call for vertex arrays, which can't
  work.
* Fixed use of uninitialized variable in RAS_TexVert.
* Exporting skinned meshes was doing O(n^2) lookups for vertices and
  deform weights, now uses same trick as regular meshes.
2008-06-17 10:27:34 +00:00
Kent Mein
106974a9d2 Fixing up the webplugin defines for the Makefiles.
Now you can do one of the following to disable it:
export NAN_NO_PLUGIN=true
export WITH_BF_WEBPLUGIN=false

or
export WITH_BF_WEBPLUGIN=true to enable building it.
(Its set to false by default)

Kent
2008-05-08 18:38:21 +00:00
Chris Want
4ca900bcec Small fix from GSR for using pkg-config to find OpenEXR libraries 2008-04-21 03:55:39 +00:00
Chris Want
5d0a207ecb Patch from GSR that a) fixes a whole bunch of GPL/BL license
blocks that were previously missed; and b) greatly increase my
ohloh stats!
2008-04-16 22:40:48 +00:00
Kent Mein
867e12836b This patch spawns from this game engine issue:
[#7113] GE crash pressing as soon as P on 64 bit


Note:         glext.h has been removed from the source
        If you get errors compiling with it you have 2 options
                download/install 	glext.h        (preferred method)
                or set WITH_BF_GLEXT=false
        If your a user and having problems with game engine try
                setting the env var: WITHOUT_GLEXT 1

Kent
2008-04-16 17:40:59 +00:00
Kent Mein
320ac3f0e2 Fixing makefiles for binreloc I made it use flags like other
things default on for linux.  ideasman helped me get scons working.
Cmake still needs some love...

Kent
2008-01-18 21:39:47 +00:00
Campbell Barton
9ac2817fef some changes needed to get blender compiling with 64bit libs, use the systems Mesa now. 2008-01-04 11:55:37 +00:00
Campbell Barton
f1b78cb4da chenge the default location of mesa/gl header, added to lib path 2007-12-14 13:56:06 +00:00
Campbell Barton
960ace98db made guessconfig add use bash (not sh) and return a CPU as i386-32 or i386-64 (was just i386)
default python to 2.5
2007-12-13 22:36:10 +00:00
Kent Mein
9f76c42c00 Typo fix from Tanner Jotblad for testing FREE_WINDOWS
Kent
2007-12-10 16:45:37 +00:00
Matt Ebb
b3d0478fa2 * fix for compiling in windows with makefiles 2007-12-10 04:50:22 +00:00
Kent Mein
7b2e348d4f This is a modified version of this patch:
[#7660] Solaris 10 x86 support (Makefiles)

Hopefully it will not mess up anything for anyone else.  I removed
some hardcoded static libs and made NAN_*_LIB definitions so they could be 
overridden, to allow greater flexability.

Let me know if there are any problems/questions.

Kent
2007-12-05 16:58:52 +00:00
Campbell Barton
8bcfafa3d9 changed default nan_definitions.mk to use python 2.5 for linux (ai64 default was py 2.2 which probably wont even compile anymore)
pose.c - left a print here
export obj would ask about file overwriting twice.
2007-10-21 17:38:17 +00:00
Peter Schlaile
9e4978b3de == Sequencer / FFMPEG ==
Updated FFMPEG to latest version. (And fixed some Tab-codes, that Emacs
didn't like in OPENEXR-related lines)
2007-09-23 14:02:25 +00:00
Kent Mein
613646b33e This commit is a modified version of patch #6860
It adds read only dds support.  (Writing will come later)

Kent
2007-06-25 19:50:25 +00:00
Chris Burt
c3355b16a5 This commit sets Python version to 2.5 for Windows/Cygwin/GCC builds. 2007-05-17 01:09:52 +00:00
Kent Mein
6bd765e125 Stupid fix... Back when I introduced new env vars for what
targets to build, the definitions file had different names from the
Makefiles, so these two were broken.
WITH_BF_BLENDERGAMEENGINE
WITH_BF_BLENDERPLAYER

Fixed now.

Kent
2007-05-04 15:58:20 +00:00
Chris Want
2d87ee1ace Added libIlmThead.a to link line to the osx-intel build. 2007-04-18 17:49:42 +00:00
Joilnen Leite
e8333e36b1 not search openEXR with WITH_OPENEXR=false in linux 2007-04-17 02:34:40 +00:00
Kent Mein
65a9dcdab7 I switched the linux side of things to use pkg-config for
OpenEXR, and I switched all of the other platforms back to
no ThreadLib.  I really was trying to make this easier for people not
harder, and I'm afraid I failed.  Hopefully this clears things up for
people and everyone will switch to using the Makefiles. ;)

If your having problems you should be able to just add the IlmThread lib
back into your NAN_OPENEXR_LIBS inside of your user-def.mk and be good to
go.  let me know if you have problems with it.

Kent
2007-03-28 20:49:15 +00:00
Kent Mein
3ac0c09d15 This commit does a couple of things to the Makefiles.
The first is it adds libIlmThread.a to the OpenEXR libs.

The second thing it does, is make it possible to define what TARGETS
you want to build inside of your user-def.mk file.  This simplifies
source/Makefile quite a bit.  I made each platform have the same
defaults (build dynamic blender, gameengine and gameplayer)  I think
most platforms should be building this combo anyway and if you need to
change it its trivial so no need to have different defaults for each platform.
The new defines are as follows with their default settings in:
         source/nan_definitions.mk

    export WITH_BF_DYNAMICOPENGL ?= true
    export WITH_BF_STATICOPENGL ?= false
    export WITH_BF_GAMEENGINE ?= true
    export WITH_BF_GAMEPLAYER ?= true
    export WITH_BF_WEBPLUGIN ?= false

Let me know if you have any problems with it.

Kent
2007-03-27 15:42:27 +00:00
Chris Want
341f50c4f7 Makefile support for bullet2 ... please test 2006-11-22 19:05:35 +00:00
Erwin Coumans
3b91d4e30a Step 1 of Bullet 2.x upgrade:
Temporarily disabled game engine for scons and Makefiles (nan_definitions?), this to upgrade to Bullet 2.x

scons for Darwin, Linux, BSD3, SunOS5, Win32, and Makefiles should not compile game engine right now.
CMake and MSVC needs still disabling of game engine.
2006-11-21 00:14:58 +00:00
Matt Ebb
0597e17710 Tweaked the makefile build system to copy the new freedesktop icons
into an icons folder in the release package on linux, freebsd and openbsd
when doing 'make release'.
2006-11-14 04:29:04 +00:00
Kent Mein
ba63fdeb41 Fix for makefiles so it can find wintab headers in the libdir.
Kent
2006-11-06 16:58:28 +00:00
Jiri Hnidek
2ee42ac01e Huge commit: VERSE
- All code is in #ifdef ... #endif
 - Only make build system is supported and you have to add:
    export WITH_VERSE=true
   to user-def.mk file
 - Blender can share only mesh objects and bitmaps now
 - More informations can be found at wiki:
    http://mediawiki.blender.org/index.php/BlenderDev/VerseIntegrationToBlender
    http://mediawiki.blender.org/index.php/BlenderDev/VerseIntegrationToBlenderUserDoc

  I hope, that I didn't forget at anything
2006-08-20 15:22:56 +00:00
Kent Mein
454fceb5f5 Solaris was still using compress for make release.
Everyone else was using gzip.  On the latest downloads many of them
are using bzip2, (I think everyone using scons)
So I decided to update make release so that everyone is using
gzip2.  I don't mean to step on anyones toes, I know at least some of
the platform maintainers do not use make though so feel free to change
it back and or to something different for your platform.

While I was at it I also changed default path of OPENEXR to /usr on linux.
Was suggested on mailing list by Matt.
(I'm pretty sure the linux maintainer is using scons)

Kent
2006-08-03 10:48:20 +00:00
Brecht Van Lommel
4ee3515bf1 Brush Datablock:
- Added a new Brush datablock, only used by image paint, but intended
  to be used in texture paint, vertex paint, weight paint and sculpt
  mode also.
- Being a datablock, these brushes can be saved, appended and linked.
  They have a fake user by default, to make sure they are saved even if
  not selected.

Image Painting:

- Replaced the img module with C code in imagepaint.c
- Airbrush is no longer a separate tool, but rather an option that can
  be used for soften, smear and clone also.
- Blend modes mix, add, subtract, multiply, darken and lighten have been
  added, code taken directly from vertex paint.

Note to project files maintainers:

- The img module was removed from SCons and Makefiles, and this should
  be done in other build systems also. I'll wait to remove the module
  from cvs, to not break compilation.
2006-07-26 22:29:23 +00:00
Ton Roosendaal
1ce8f352bc Oops! Only OSX has the OpenEXR in cvs now, makefile did it for Linux too. 2006-07-10 16:01:47 +00:00
Ton Roosendaal
64ff9ae4a8 Mac intel commit
- patch from Douglas with endian fixes
- Makefile adds static libiconv.a from lib/
- this version will use OpenEXR libs from lib/ too, and is latest release
  with threading support
- openAL is missing, added it as default to not include it
2006-07-03 19:50:53 +00:00
Peter Schlaile
f0604cffb7 == FFMPEG ==
Made internal ffmpeg-libraries link by explicitly specifying the archive-files.
(Thanks GSR for pointing this out)

Otherwise, blender always links to the system-libs.
2006-06-26 09:18:30 +00:00
Peter Schlaile
63a1f2515e ==FFMPEG==
forgot to commit nan_definition changes
2006-06-25 19:02:38 +00:00
Chris Want
9a21866aec pthreads for Makefiles/cygwin (don't forget to update lib/windows). 2006-02-27 00:03:18 +00:00
Chris Want
462941aaf0 Support for ffmpeg for cygwin/gcc. Off by default, enable with
export WITH_FFMPEG=true
(and be sure to update lib/windows). Test, test, test.
2006-02-06 06:34:36 +00:00
Chris Want
b8988d8c19 Using NAN_FFMPEG_CFLAGS to find the right headers, and making linking
with NAN_FFMPEG_LIBS more general (i.e., not just for linux, and
moving some of the linux linking stuff to source/nan_definitions.mk).
2006-02-06 06:22:39 +00:00
Chris Want
cd4a6b669b To aid linking, I added NAN_USE_FFMPEG_CONFIG (true/false).
If "export NAN_USE_FFMPEG_CONFIG=true" is added to user-def.mk,
the system executes the ffmeg-config program to set values
for NAN_FFMPEG (--prefix), NAN_FFMPEGLIBS (--libs avcodec avformat),
and NAN_FFMPEGCFLAGS (--cflags). Only one used so far is the
NAN_FFMPEGLIBS for linking on linux (if requested to do so).
Current default is not to do this.
2006-02-06 01:49:33 +00:00
Peter Schlaile
bec1ab6f77 Added NAN_NO_FFMPEG user option 2006-02-06 00:10:43 +00:00
Jean-Luc Peurière
012a87eaa6 reverting default location for OpenEXR to the proper default
(the one in doc)
2006-02-05 21:16:55 +00:00
Peter Schlaile
250c9de1bc Adds ffmpeg-support on Linux-platforms. Since ffmpeg is installed
always statically (you have to force it to build a dynamic library) the
resulting binary is redistributable.

The code is made ffmpeg-version independent using #ifdef's.
2006-02-05 19:49:29 +00:00
Chris Want
c8b48e70e6 Final merge of HEAD (bf-blender) into the orange branch.
Here are my notes on things to look out for as potential problem
spots:

source/blender/blenkernel/intern/displist.c:
+ is initfastshade(void) supposed to be empty? I had
to make it empty to get the merged tree to compile.

source/blender/python/api2_2x/Armature.c:
+ went with the version that had Armature_getLayers()

source/blender/python/api2_2x/Object.c
+ went with the version of Object_getPose() from bf-blender.
(#ifdef 0-ed the other version)

source/blender/python/api2_2x/Pose.[ch]
+ had problems linking due to no Pose_Init() ... copied these
two files straight from bf-blender.

source/blender/src/drawview.c:
+ view3d_panel_properties() had things shifted a few things shifted
a few pixels, otherwise, things were painless

source/blender/src/splash.jpg.c:
+ went with bf-blender version (orange is dead)

source/gameengine:
+ went with bf-blender version -- does not compile due to IMB_rect* stuff,
Ton should look into this.
2006-01-28 16:35:18 +00:00
Jean-Luc Peurière
77c4eef90b after much suffering, got GE build and work almost cleanly on Os X
(with make, need to confirm with scons)

after cleaning the changes are in fact minimal, but the situation
is still quite a bit hackish.

Game engine coders, there is also quite a number of warnings that
need to be fixed.

current situation is that everything seems to work, but GLSL shaders
spew a lot of errors on console and blender may crash on exit when
a GLSL shader was used. ARB stuff works fine.
2006-01-16 22:27:30 +00:00
Erwin Coumans
0132ac9b8b re-enable game engine by default, for 2.41 preparation 2006-01-12 00:57:28 +00:00
Hans Lambermont
ce4dcda91a - override the temporary disabling of KETSJI and OPENAL for FreeBSD. 2006-01-11 21:11:07 +00:00
Chris Want
638b625d14 For windows, NAN_NO_KETSJI was always set to false (as a result of
some strange merging). Unfortunately, Bullet doesn't build correctly
for gcc under cygwin (some private vs public stuff), so it is
important to be able to disable the game engine in these circumstances.
2006-01-11 03:23:47 +00:00
Ton Roosendaal
e7285229b8 Tuesday merger of bf-blender into orange branch. 2006-01-10 22:10:14 +00:00
Chris Want
ca8da580a8 OpenEXR support for Windows Makefiles 2006-01-10 06:29:57 +00:00
Kent Mein
c693e01b8d Ton forgot a few modifications to the Scons and Makefile build systems.
These should make it so that other people can compile with OpenEXR support.

(I also added the OPENAL fix erwin commited to bf-blender since I
need it for my machine, and this syncs up the file)

Kent
2006-01-09 02:18:11 +00:00
Erwin Coumans
bed24bc299 more work to get armatures/blender materials to work under non-windows platforms 2006-01-07 00:14:37 +00:00