Commit Graph

61 Commits

Author SHA1 Message Date
Campbell Barton
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
Ton Roosendaal
b119ce5fcc Drag and drop 2.5 integration! Finally, slashdot regulars can use
Blender too now! :)

** Drag works as follows:

- drag-able items are defined by the standard interface ui toolkit
- each button can get this feature, via uiButSetDragXXX(but, ...).
  There are calls to define drag-able images, ID blocks, RNA paths, 
  file paths, and so on. By default you drag an icon, exceptionally 
  an ImBuf
- Drag items are registered centrally in the WM, it allows more drag 
  items simultaneous too, but not implemented

** Drop works as follows:

- On mouse release, and if drag items exist in the WM, it converts 
  the mouse event to an EVT_DROP type. This event then gets the full 
  drag info as customdata

- drop regions are defined with WM_dropbox_add(), similar to keymaps 
  you can make a "drop map" this way, which become 'drop map handlers' 
  in the queues.
- next to that the UI kit handles some common button types (like 
  accepting ID or names) to be catching a drop event too.

- Every "drop box" has two callbacks:
  - poll() = check if the event drag data is relevant for this box
  - copy() = fill in custom properties in the dropbox to initialize 
    an operator
- The dropbox handler then calls its standard Operator with its 
  dropbox properties.

** Currently implemented

Drag items:
- ID icons in browse buttons
- ID icons in context menu of properties region
- ID icons in outliner and rna viewer
- FileBrowser icons
- FileBrowser preview images

Drag-able icons are subtly visualized by making them brighter a bit 
on mouse-over. In case the icon is a button or UI element too (most 
cases), the drag-able feature will make the item react to 
mouse-release instead of mouse-press. 

Drop options:

- UI buttons: ID and text buttons (paste name)
- View3d: Object ID drop copies object
- View3d: Material ID drop assigns to object under cursor
- View3d: Image ID drop assigns to object UV texture under cursor
- Sequencer: Path drop will add either Image or Movie strip
- Image window: Path drop will open image


** Drag and drop Notes:

- Dropping into another Blender window (from same application) works 
too. I've added code that passes on mousemoves and clicks to other 
windows, without activating them though. This does make using multi-window
Blender a bit friendler.

- Dropping a file path to an image, is not the same as dropping an 
Image ID... keep this in mind. Sequencer for example wants paths to 
be dropped,  textures in 3d window wants an Image ID.

- Although drop boxes could be defined via Python, I suggest they're 
part of the UI and editor design (= how we want an editor to work), and 
not default offered configurable like keymaps. 

- At the moment only one item can be dragged at a time. This is for 
several reasons.... For one, Blender doesn't have a well defined 
uniform way to define "what is selected" (files, outliner items, etc). 
Secondly there's potential conflicts on what todo when you drop mixed 
drag sets on spots. All undefined stuff... nice for later.

- Example to bypass the above: a collection of images that form a strip, 
should be represented in filewindow as a single sequence anyway. 
This then will fit well and gets handled neatly by design.

- Another option to check is to allow multiple options per drop... it 
could show the operator as a sort of menu, allowing arrow or scrollwheel 
to choose. For time being I'd prefer to try to design a singular drop 
though, just offer only one drop action per data type on given spots.

- What does work already, but a tad slow, is to use a function that 
detects an object (type) under cursor, so a drag item's option can be 
further refined (like drop object on object = parent). (disabled)


** More notes

- Added saving for Region layouts (like split points for toolbar)

- Label buttons now handle mouse over

- File list: added full path entry for drop feature.

- Filesel bugfix: wm_operator_exec() got called there and fully handled, 
while WM event code tried same. Added new OPERATOR_HANDLED flag for this. 
Maybe python needs it too?

- Cocoa: added window move event, so multi-win setups work OK (didnt save).

- Interface_handlers.c: removed win->active

- Severe area copy bug: area handlers were not set to NULL

- Filesel bugfix: next/prev folder list was not copied on area copies

** Leftover todos

- Cocoa windows seem to hang on cases still... needs check
- Cocoa 'draw overlap' swap doesn't work
- Cocoa window loses focus permanently on using Spotlight
  (for these reasons, makefile building has Carbon as default atm)

- ListView templates in UI cannot become dragged yet, needs review... 
it consists of two overlapping UI elements, preventing handling icon clicks.

- There's already Ghost library code to handle dropping from OS 
into Blender window. I've noticed this code is unfinished for Macs, but 
seems to be complete for Windows. Needs test... currently, an external 
drop event will print in console when succesfully delivered to Blender's WM.
2010-01-26 18:18:21 +00:00
Stefan Gartner
1f33d574c2 OS X Makefiles:
* added some new variables (mostly the same as with scons):
  - USE_COCOA: use Cocoa for ghost (defaults to true)
  - MACOSX_ARCHITECTURE: can be ppc, ppc64, i386, x86_64. By default this is the host architecture
    (ppc for PowerPC Macs, i386 for Intel Macs). In theory this allows to cross compile blender for
    a different architecture, though cross compilation only works on Intel Macs, because makesdna
    and makesrna are built for the target architecture.
    For a 64 bit build, set MACOSX_ARCHITECTURE to x86_64 (Intel) or ppc64 (PowerPC).
  - MACOSX_MIN_VERS: minimum OS X version to run blender on (10.4 for 32 bit builds, 10.5 for 64 bit    builds)
  - MACOSX_DEPLOYMENT_TARGET: needed by the linker to create an Application targeted for a specific
    OS version (defaults to 10.4 for 32 bit builds, 10.5 for 64 bit builds)
  - MACOSX_SDK: path to a specific SDK. currently not used 
  - USE_QTKIT: use QTKit instead of QuickTime (defaults to true for 64 bit builds, as using QTKit
    is mandatory in that case))
 * use the same compiler flags as scons
 * default compiler now is gcc-4.0 when building for 10.4 and gcc-4.2 when building for 10.5
 * extract $(LCGDIR)/release/python_$(MACOSX_ARCHITECTURE).zip to Application bundle. This might
   break building on 10.4, to fix that, rename $(LCGDIR)/release/python.zip 

When compiling blender, only MACOSX_ARCHITECTURE might be of interest, as it allows doing 64 bit
builds (or 32 bit PowerPC builds on Intel). All other variables are then set to reasonable defaults.
For current users of the Makefile system, this commit shouldn't change much.
2010-01-03 20:35:13 +00:00
Stefan Gartner
e65562c6ea Makefiles: fix CFLAGS for OS X 2009-12-21 10:40:55 +00:00
Stefan Gartner
5e6e3453a5 OS X: added support for building with Cocoa to Makefiles
to build with Cocoa support, set WITH_COCOA to true in user-def.mk
2009-12-21 10:38:04 +00:00
Campbell Barton
b895b2e48f - remove CPPFLAG XP_UNIX from CMake, Scons and Irix make, checked our own code and /usr/include, its only used in our netscape plugin.
- CMake on unix default OpenMP to enabled.
- Scons on linux default OpenMP to enabled.
- copying python is slow, for scons only copy if the directory has not been created.
2009-11-19 11:49:42 +00:00
Ton Roosendaal
0e5a6a21e8 Fixes to get Blender compile and run on PowerPC OSX 10.3, gcc 3.3
(yes antique, but having 5 year old OS's work is very cool)

In short:
- include <cmath> after <math.h> fails
- STL template issues (recursion, syntax)
2009-10-20 15:51:18 +00:00
Guillermo S. Romero
ccf847585d Make compiler easily to override (CC & CCC) and clean up whitespace. 2009-09-13 22:34:47 +00:00
Campbell Barton
798bed8424 forgot to updated scons and make for the bullet defines 2009-08-18 04:15:28 +00:00
Campbell Barton
59bfe91f21 remove makefile cruft, mostly BGE related references to SUMO, Fuzzics, Blenkey etc.
also remove define MOZ_NOT_NET that was being used all over for telling the plugin to link against mozilla (not netscape)
2009-08-04 03:13:36 +00:00
Campbell Barton
8ead648fd1 Spring Cleaning
* removed radiosity render code, DNA and RNA (left in radio render pass options), we'll get GI to replace this probably, better allow baking to vertex colors for people who used this.
* removed deprecated solid physics library, sumo integrations and qhull, a dependency
* removed ODE, was no longer being build or supported
* remove BEOS and AMIGA defines and references in Makefiles.
2009-06-21 16:18:38 +00:00
Ton Roosendaal
7c4fccd684 2.5
Cleanup commit:

- Yafray removed. Also did cmake/scons files, but didn't compile with it,
  so test would be appreciated :)
- Removed old crap from Windows release dir, should be checked on
  further by windows release builder later.
2009-06-01 12:10:30 +00:00
Brecht Van Lommel
874c29cea8 2.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r19323:HEAD
Notes:
* blenderbuttons and ICON_SNAP_PEEL_OBJECT were not merged.
2009-04-20 15:06:46 +00:00
Chris Want
77e0199dc3 Makefile updates for Blender 2.5 (from GSR) 2009-03-19 01:50:45 +00:00
Ton Roosendaal
f377be3783 2.5
Assorted smaller fixes:

- Fix: modal keymaps for editmode in view3d were not set again
  when you copy areas or go fullscreen.

- Improved "redo last op" (F6) to search back in history for
  a redoable operator. Operator also used wrong pupmenu type.

- On creating new FCurve editor, the channel rainbow colors are
  set correct.

- EditMesh: fixed code for Spin/Screw, correct props, init and
  error reporting. (Spin hotkey ALT+R temporary)

- recompiled all to check for uninitialized variable warnings.
  (compile flag should be -O for this). Fixed some proto's.
2009-02-19 16:22:07 +00:00
Brecht Van Lommel
ec00764dd2 2.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r17434:HEAD 2008-12-14 17:32:24 +00:00
Stefan Gartner
f1474648d3 patch #8583: Add support for gcc on irix
to compile blender with gcc on IRIX, IRIX_USE_GCC needs to be set to true in
user-def.mk.

Other changes related to irix:
 * compile solid from extern/
 * don't build plugins (yet) with "make release" when using gcc (the shell
   script used assumes MIPSpro is installed)
 * use statvfs instead of statfs on irix, like done on solaris
 * use external libs from $(LCGDIR) instead of /usr/freeware
 * use glew header files from $(LCGDIR)/glew instead of the ones installed on
   the system (this applies to other platforms as well)
 * ffmpeg support currently is disabled on irix
2008-11-24 14:15:05 +00:00
Ton Roosendaal
db24487449 Makefile fixes for compiling with new videotexture code.
Also: buttons for logic, controllers, didn't line up correct when 
multiple objects were selected (too little space)
2008-11-02 18:12:45 +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
4f553a59f7 Added a WITH_BF_OPENMP option
to add in proper flags for openmp support.

Kent
2008-03-14 20:11:43 +00:00
Daniel Genrich
2d02b0d363 Cloth makefiles bugfix which lead in disabled collisions 2008-03-03 00:43:37 +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
3d24160231 -m64 somehow made opengl headers have conflicting values when compiling. 2007-12-21 09:30:37 +00:00
Campbell Barton
2e48a4af57 change default solaris gcc args, use -m64 for 64bit arch, use -O2 rather then -O1 2007-12-20 16:33:45 +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
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
Kent Mein
6cd6bf7d80 Updated the Makefiles removing some of the gcc specific stuff...
Basically I moved  -funsigned-char -fno-strict-aliasing
from individual Makefiles to nan_compile.mk defines for CFLAGS and CCFLAGS

Kent
2007-08-31 16:16:33 +00:00
Kent Mein
35d3781757 This reverts the dependancy stuff I did for make -j#
It was causing all of blender to be rebuilt every single time.
Need to do more to figure it out before we add this back in.

Kent
2006-11-17 18:29:46 +00:00
Kent Mein
0de1fd9086 Added dependency to make destination directory before compiling a file.
This is needed for make -j#   where # is > 1
This doesn't totally fix everything for make -j2 but it makes things
mostly work.

Kent
2006-11-16 18:28:57 +00:00
Jiri Hnidek
e3ff8e3507 - uncommit my personal hack of nan_compile.mk, which came to cvs with
huge commit of verse ... this shouldn't be there, I'm sorry
2006-08-21 14:22:08 +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
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
Chris Want
a30dc3866c Some issues compiling on Irix:
+ the code in writemovie.c no longer compiles (since the renderer
refactor). I have #if 0-ed it.

+ OpenGL on Irix doesn't have GL_ARB_vertex_program

+ mmap on Irix doesn't like MAP_ANON.

+ If using the MipsPro 7.3 compiler, the variable MIPS73_ISOHEADERS
can be set to point to the directory with those weird C++ headers
that don't have .h in the name
2006-02-22 23:34:12 +00:00
Chris Want
fc9ba4b323 In some directories (e.g. source/blender/src) there are so many files
now that the command to put the object files into an archive is
exceeding 20k characters, which is a problem for some operating systems.
To avoid this, this modification causes make to change directories before
archiving, to avoid having to specify full file paths to the files
being archived.

If this causes problems on some systems, let me know and I'll find an
alternative.
2006-02-22 23:26:26 +00:00
Ton Roosendaal
8347dd2560 Put back the -O2 default for compiling with makefiles in OSX.
I disabled it for testing in orange...
2006-01-28 19:48: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
Ton Roosendaal
042d612df2 Giant commit!
A full detailed description of this will be done later... is several days
of work. Here's a summary:

Render:
- Full cleanup of render code, removing *all* globals and bad level calls
  all over blender. Render module is now not called abusive anymore
- API-fied calls to rendering
- Full recode of internal render pipeline. Is now rendering tiles by
  default, prepared for much smarter 'bucket' render later.
- Each thread now can render a full part
- Renders were tested with 4 threads, goes fine, apart from some lookup
  tables in softshadow and AO still
- Rendering is prepared to do multiple layers and passes
- No single 32 bits trick in render code anymore, all 100% floats now.

Writing images/movies
- moved writing images to blender kernel (bye bye 'schrijfplaatje'!)
- made a new Movie handle system, also in kernel. This will enable much
  easier use of movies in Blender

PreviewRender:
- Using new render API, previewrender (in buttons) now uses regular render
  code to generate images.
- new datafile 'preview.blend.c' has the preview scenes in it
- previews get rendered in exact displayed size (1 pixel = 1 pixel)

3D Preview render
- new; press Pkey in 3d window, for a panel that continuously renders
  (pkey is for games, i know... but we dont do that in orange now!)
- this render works nearly identical to buttons-preview render, so it stops
  rendering on any event (mouse, keyboard, etc)
- on moving/scaling the panel, the render code doesn't recreate all geometry
- same for shifting/panning view
- all other operations (now) regenerate the full render database still.
- this is WIP... but big fun, especially for simple scenes!

Compositor
- Using same node system as now in use for shaders, you can composit images
- works pretty straightforward... needs much more options/tools and integration
  with rendering still
- is not threaded yet, nor is so smart to only recalculate changes... will be
  done soon!
- the "Render Result" node will get all layers/passes as output sockets
- The "Output" node renders to a builtin image, which you can view in the Image
  window. (yes, output nodes to render-result, and to files, is on the list!)

The Bad News
- "Unified Render" is removed. It might come back in some stage, but this
  system should be built from scratch. I can't really understand this code...
  I expect it is not much needed, especially with advanced layer/passes
  control
- Panorama render, Field render, Motion blur, is not coded yet... (I had to
  recode every single feature in render, so...!)
- Lens Flare is also not back... needs total revision, might become composit
  effect though (using zbuffer for visibility)
- Part render is gone! (well, thats obvious, its default now).
- The render window is only restored with limited functionality... I am going
  to check first the option to render to a Image window, so Blender can become
  a true single-window application. :)
  For example, the 'Spare render buffer' (jkey) doesnt work.
- Render with border, now default creates a smaller image
- No zbuffers are written yet... on the todo!
- Scons files and MSVC will need work to get compiling again

OK... thats what I can quickly recall. Now go compiling!
2006-01-23 22:05:47 +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
Chris Want
4a50f5b593 Support for 'Bullet' in the Makefiles. Enable with:
export NAN_USE_BULLET=true

in environment, or in user-def.mk
2005-08-18 06:07:02 +00:00
Chris Burt
5d31c72020 Uncommented a line in the FREE_WINDOWS section that appears to control the
detection of changes to dependencies. This should resolve issues with
Cygwin builds using makefiles which have bizarre behavior if 'make clean'
was not used before compile.
2005-04-18 19:28:38 +00:00
Chris Burt
1916552055 Since new transform and subsurf are default now.. no more need for the
defines in the makefiles. Removed to prevent gunky buildup.
2005-04-01 02:28:39 +00:00
Chris Burt
2ec686720b Added option to use new subsurf module added by Daniel Dunbar. Simply add:
export NAN_NEW_SUBSURF=true

to your user-def.mk file.
2005-03-21 22:32:02 +00:00
Kent Mein
8c4608bbf4 I updated the FREETYPE2 checks so it didn't build freetype stuff
if WITH_FREETYPE2 was set to false.

Also added/cleaned up source/nan_compile.mk NAN_NOKETSJI stuff a hair.

Kent
2005-02-18 16:52:03 +00:00
Chris Want
c334c00995 To compile the new transform code with make, add the following to
user-def.mk:

  export NAN_NEW_TRANSFORM=true
2005-02-14 03:12:12 +00:00
Ton Roosendaal
8712c7dab4 Essential cleanup for mess involved with reading files, initializing UI and
patching versions for UI settings.

Currently four different levels of routines for .blend file reading exist;

/* interface level */
1) BIF_init() -> calls 3
2) BIF_read_file() -> calls 11, optional 4
3) BIF_read_homefile() -> calls 11 or 12, and then 4
4) init_userdef_file()

/* kernel level */
11) BKE_read_file() -> calls 21, and then 14
12) BKE_read_file_from_memory() -> calls 22, and then 14
13) BKE_read_file_from_memfile() -> calls 23, and then 14
14) setup_app_data()

/* loader module level */
21) BLO_read_from_file() -> calls 24
22) BLO_read_from_memory() -> calls 24
23) BLO_read_from_memfile() -> calls 24

/* loader module, internal */
24) blo_read_file_internal()


Note:
- BIF_read_homefile() has additional UI initialize calls, like windows fullscreen and executing commandline options

- Reading from memory (12) only happens for the compiled-in .B.blend

- The "memfile" here is a name I gave to the undo "file" structure. Which is constructed out of memory chunks with basic compression features.

- the kernel function setup_app_data() sets globals like "current screen" and "current scene".

So far, so good. The levels as mentioned here clearly distinguish UI from kernel, and should enable for example game loading (runtime) or background (no UI) loading. In the past years however, 'bad level' dependencies were added, and especially the patches for 'file versions' were added in too many places. The latter is evidently a result of the problem that the "UserDef" struct cannot be initialized/patched if there's not a need for a UI.

Here's how the flow goes in four different cases:

----- Starting up Blender, in foreground with UI --------------------

- creator/creator.c, main() -> calls 1
- If the commandline contains a filename, it calls 11

----- Starting up Blender, in background without UI --------------------

- creator/creator.c, main() -> calls 11 if the commandline has a filename

Note: no Userdef is read, nor initialized. Please note that this was already an existing problem for using Yafray, not setting proper file paths in background mode. The Yafray paths don't belong in the User menu.

----- Starting up Blender as a runtime executable --------------------

This only has calls to 22

----- Loading a file from within the UI (with F1, CTRL+O, using pulldowns) -----

Only calls allowed to 2. It detects if a UserDef has been read too, and in that case the init_userdef_file() will be executed.

Hope this is understandable :)

-Ton-
2004-12-08 14:12:47 +00:00
Ton Roosendaal
4226715fc0 Update make system for darwin;
- using python framework (default on, set it off with define in
  definitions.mk)
- not installing .bfont.tff
2004-11-14 13:44:47 +00:00
Ton Roosendaal
e7df984c16 Changes for OSX compiling with Makefiles;
- support 2.3 python
- use -O2 for all
- fixed reference to SOLID.h
2004-05-01 16:52:29 +00:00
Kent Mein
a234885db8 Lowered optimization for solaris gcc to -O1
this is for bug # 1052  Basically the higher optimization causes
blender to choke on the provided blend file.

Kent
2004-04-02 19:37:20 +00:00
Chris Want
0a6d0e62e1 A fix for the MIPSPro 7.4 compiler ... please let me know if there
are problems with 7.3.
2004-03-28 22:37:56 +00:00