Commit Graph

233 Commits

Author SHA1 Message Date
1bd58bdbf4 = misc small stuff =
- own mistake in scene help text.
- rename properties to have users as the prefix for better ordering.
- use fixed height for stamp, gives better aligned text.
2010-05-25 17:04:32 +00:00
2be851c966 Blender TIFF support
* Removed dynamic linking libTIFF code and change it to static linking 
(built into the blender executable). Dynamic linking made things a 
fair bit more complicated and wasn't working at all before on OS X - 
the dylib didn't exist and wasn't being copied. Since TIFF is more heavily
depended upon now in Blender, it makes sense to make it less 'optional'
and more in line with other libraries.

I've updated both CMake and scons, and CMake on OS X/64bit works fine.
It's now up to other platform/build system maintainers to enable this for 
their respective platforms (Campbell will check it for linux). For windows,
and non-64bit osx, we need static libtiff libraries in /lib.

I've added options WITH_TIFF for CMake and WITH_BF_TIFF for scons,
so if blender won't build because of this, you should be able to disable 
these options until your build system has been updated.

* Bonus feature: while doing this, I added support for loading 16bit and 32bit 
per channel TIFFs - they get converted to Blender's float buffers. Handy for 
zbrush displacement maps!
2010-05-21 03:25:38 +00:00
5741dbf6e4 render time wasnt being written to the metadata of images. 2010-05-08 20:07:29 +00:00
008863daec Merge image related changes from the render branch. This includes the image
tile cache code in imbuf, but it is not hooked up to the render engine.


Imbuf module: some small refactoring and removing a lot of unused or old code
(about 6.5k lines).

* Added a ImFileType struct with callbacks to make adding an file format type,
  or making changes to the API easier.
* Move imbuf init/exit code into IMB_init()/IMB_exit() functions.
* Increased mipmap levels from 10 to 20, you run into this limit already with
  a 2k image.
* Removed hamx, amiga, anim5 format support.
* Removed colormap saving, only simple colormap code now for reading tga.
* Removed gen_dynlibtiff.py, editing this is almost as much work as just
  editing the code directly.
* Functions removed that were only used for sequencer plugin API:
  IMB_anim_nextpic, IMB_clever_double, IMB_antialias, IMB_gamwarp,
  IMB_scalefieldImBuf, IMB_scalefastfieldImBuf, IMB_onethird, IMB_halflace,
  IMB_dit0, IMB_dit2, IMB_cspace
* Write metadata info into OpenEXR images. Can be viewed with the command
  line utility 'exrheader'

For the image tile cache code, see this page:
http://wiki.blender.org/index.php/Dev:2.5/Source/Imaging/ImageTileCache
2010-05-07 15:18:04 +00:00
a547e91d41 Two bugfixes from the render branch:
* Fix for FSA update while rendering fix, should set float rect to NULL.
* Fix for irradiance cache mutex unlock that got lost in code changes.
2010-04-26 12:50:48 +00:00
23ad9588ad Some fixes from the render branch:
* Take border render into account when drawing grid before for render
  result becomes visible.
* Use antialiasing for rendering icon previews.
* Fix Full Sample not drawing render result while rendering.
* Mesh Deform Modifier: also forgot to commit this file.
2010-04-23 18:02:50 +00:00
a56b72fd82 BugFix:
[#20854] PROPERTIES STAMP: Rendering stamp flickers in output renders

Blenfont was not thread safe, that is why one thread can change
the font properties (size, dpi, color, etc) at the same time
that the stamp draw on the image, and then the problem.

To make blenfont thread safe I have to change two important things:

1) Every BLF_* function take one argument, the font id.
2) We have two new function to make font "thread safe":
	BLF_load_unique
	BLF_load_mem_unique

This two function are for case like stamp, that need and own font
that don't share the glyph cache, so can draw without problem
in a different thread.

Why the BLF_*_unique function ?

Because blenfont keep only one copy of a font and keep a list of
"glyph cache". Every glyph cache have size and dpi, so if two
different thread access the same font at the same time, they can
change value and finish with something like the stamp problem.

Why don't remove the glyph cache ?

Because if we do that, we finish with a font object for every size
and dpi, and the stamp is really a special case that happen in
the rendering process, so I really thing is better keep the
glyph cache and make this two new function to handle this
special case.

(When I say "font object" I mean have the same freetype font multiple
times just to have differents size and dpi)

As Matt point we still can have one case that two thread access
the BLF_*_unique function at the same time, but I am looking to
fix this with some class of thread lock.

For now I test and work fine, so if some one found problem, please
let me know.

Campbell I have to change the python api (python/generic/blf_api.c)
to the new syntax, so maybe you can take a look at this.
2010-04-22 10:56:45 +00:00
9a85013692 Merge various small changes from render branch:
* Division by zero fix for TNT SVD code.
* Sound fix, in case ffmpeg decode fails, don't use the samples.
* Fix for incorrect bounds of transformed objects in new raytracing code.
* Gave memory arena's a name used for allocations for easier memory
  usage debugging.
* Dupligroup no_draw option was using layers but not restrict view/render
  setting. (not a bugfix exactly but would do display list context switching
  while drawing for no reason).
* Fix objects instanced on hair particles not giving consistent results
  when the object is transformed.
* New math functions: madd_v4_v4fl, len_squared_v3v3, interp_v4_v4v4v4,
  mul_v4_m4v4, SH and form factor functions, box_minmax_bounds_m4.
* mul_m4_m4m4 and mul_m3_m3m3 now accept the same pointers for multiple
  arguments.
* endjob callback for WM jobs system.
* Geometry node uv/color layer now has search list/autocomplete.
* Various small buildsystem tweaks, not strictly needed yet in trunk.
2010-04-15 10:28:32 +00:00
09489418a3 [#21910] Add Current Time to Render Stamps
by Harley Acheson (harley) 

note from the submission
-snip-
While in there I removed the Win32 conditionals that made "_strdate" used to
get date on Windows. "localtime" works fine on Windows so the results are consistent on all platforms.
2010-04-04 21:57:51 +00:00
9822e07be6 Attempted fixes for render crashes on windows, still can't redo them here
in a virtual machine, maybe that has some different threading behavior.
Also should fix a problem with displaying render passes and multiple slots.
2010-04-01 12:51:24 +00:00
46895ab1f2 Attempt to fix #21796: render crash on windows after slots commit. 2010-03-28 13:45:19 +00:00
57101c4fd2 Second attempt at committing the different render slot implementation. This
has a fix that hopefully solves the problem on mac/win. Also fixes #21322,
render slots not working well with FSA.
2010-03-27 15:35:34 +00:00
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
546ca400d8 removed unused includes, except for physics and particle related files 2010-03-21 13:42:25 +00:00
03acdd75e0 [#21660] improved UV test grid
from shuvro sarker (shuvro) 
Added text to the patch and made other minor tweaks.

moved image generation functions into their own file.
2010-03-21 00:25:52 +00:00
f17dcf58c8 Fixes for thread related render / compositing crashes:
* Viewer node could free image while it is being redrawn, viewer image
  buffers now need acquire/release to be accessed as was already the
  case for render results.
* The Composite node could free the image buffers outside of a lock,
  also causing simultaneous redraw to crash.
* Especially on Windows, re-rendering could crash when drawing an image
  that was freed. When RE_RenderInProgress was true it would access the
  image buffer and simply return it while it could still contain a pointer
  to a render result buffer that was already freed. I don't understand
  why this case was there in the first place, so I've removed it.

Possibly fixes bugs #20174, #21418, #21391, #21394.
2010-03-16 16:58:45 +00:00
1708ac0723 rename some functions to use easier to understand names.
'BLI_makestringcode' --> 'BLI_path_rel'
'BLI_convertstringcwd' --> 'BLI_path_cwd'
'BLI_convertstringframe' --> 'BLI_path_frame'
'BLI_convertstringframe_range' --> 'BLI_path_frame_range'
'BLI_make_cwdpath' --> 'BLI_path_cwd'
2010-03-09 17:36:23 +00:00
754b22bd51 option to use offscreen opengl drawing with the sequencer scene strips.
warning, uses bad level call, will need to resolve very very soon!
2010-03-08 21:33:51 +00:00
b356eb6a8b image re-project now uses offscreen render function and has input for render size.
unrelated changes that ended up being more trouble to commit separate...

- removed BLI_split_dirfile(), was nasty, occasionaly modifying the source string, it could create directories and used the $CWD in some cases. was only used in 2 places in filesel.c, if this gives problems can address without bringing back this function.
  renamed BLI_split_dirfile_basic --> BLI_split_dirfile

- view3d_operator_needs_opengl was being called for offscreen render when it wasnt needed.
2010-03-08 20:08:04 +00:00
878d8b44ee remove rna functions image.get_export_path() and image.get_abs_filename(), filename functions should not be spesific to images.
rename BKE_get_image_export_path() to BKE_rebase_path() and take a filename arg rather then an image.

obj export file copy was also not working because of a missing import.
2010-02-26 11:50:59 +00:00
ad01c90ee3 Revert render slots commit for release, I can't find the bug or even redo
it myself, there will still be render slots just old implementation.
2010-02-16 19:24:04 +00:00
2061f91741 Render Slots: change the implementation by moving it from the render to the
image code, this should be clearer and makes reusing the Render struct later
on easier.
2010-02-16 15:49:22 +00:00
ce26d457ba Support GPU image auto_refresh also for movie (was for sequence only). 2010-02-13 21:24:13 +00:00
b673f7318c Added support for animated texture draw, GLSL textures.
Note, this is not like GE ffmpg, but Blender Image Texture
display for GLSL materials. Speed can be disappointing,
use smaller images for realtime edits.
2010-02-13 13:09:30 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
10240261e9 J-key render switching back, now with 10 slots.
Implementation note: this was done by giving each Render a slot number,
and for every slot a new Render will be created. Not sure if this is
ideal, but it ensures that all passes, render info, etc are separate so
you can also compare render layers and passes, in 2.4x only whatever it
was currently displaying was backed up.
2010-02-09 19:37:37 +00:00
2cc02cdd9b Fix #20922: image window draw z-buffer wasn't drawing the z-buffer
from the select render layer.
2010-02-07 00:28:49 +00:00
bd0b26f7bb bugfix [#20990] maker name don't show in render stamp 2010-02-06 14:56:25 +00:00
f749d0361f - hash characters in the path would confuse the output file name and not add numbers to it (when rendering animations).
- added an option to BLI_convertstringframe and BLI_convertstringframe_range to add digits if not found.
- removed BLI_convertstringframe where its obviously not needed - such as loading movies and sounds.
2010-01-30 22:33:47 +00:00
9d0dbd707e Fix [#20754] Histogram Not Updating, Showing Incorrect Levels, Colour Management on/off leads to Crash
Various internal fixes, also additional feature - can drag on the histogram to change scale 
(0 key to reset).

Also fix [#20844] Color balance node (lift freeze)
2010-01-28 07:26:21 +00:00
abb5214a8f removed 3D view listener for changing the background image frame.
do this on drawing instead since SCREEN_OT_animation_step isnt calling the notifier (assume this is to be more efficient?). this isnt slow so is ok to do on drawing.

rename BKE_image_user_calc_imanr to BKE_image_user_calc_frame
2010-01-19 14:04:33 +00:00
b9fd903e8e make the animation read error message say if the file wasnt found. 2010-01-18 11:46:19 +00:00
b0f87935a8 spelling errors, no real changes to code. 2010-01-14 10:59:42 +00:00
04dec46c6a Color management fixes
Now it's a bit more robust, tagging images with profiles when they're loaded, 
which then get interpreted later on by conversion functions. Just Linear RGB 
and sRGB profiles at the moment, same as before.

This commit fixes Martin's problem with EXRs and Multilayer images loading/
saving too dark, and it also makes the sequence editor work correctly with it too.

Also fixes:
[#19647] gamma correction with color management is reset when resetting Curve
[#19454] 2.5: Dither does not work when Color management is enabled
2010-01-09 00:16:35 +00:00
a868e8623c - RNA support for returning copied strings from functions, flagging strings as PROP_THICK_WRAP does this.
- scene.render_data.frame_path(frame=num), returns the output path for rending images of video.
- scene.render_data.file_extension, readonly attribute, gives the extension ".jpg", ".mov" etc
- player support was guessing names, use the above functions to get the actual names used, accounting for #'s replacing numbers.
2010-01-08 13:52:38 +00:00
6426a43c3c Make scene optional in BKE_write_ibuf (only used for stamping) 2010-01-07 16:57:17 +00:00
37e4a311b0 Math Lib
* Convert all code to use new functions.
* Branch maintainers may want to skip this commit, and run this
  conversion script instead, if they use a lot of math functions
  in new code:
  http://www.pasteall.org/9052/python
2009-11-10 20:43:45 +00:00
5fff9cf660 stamp font size and added rendertime stamp option 2009-10-15 19:18:40 +00:00
b466286c3e Render & Compositing Thread Fixes
* Rendering twice or more could crash layer/pass buttons.
* Compositing would crash while drawing the image.
* Rendering animations could also crash drawing the image.
* Compositing could crash 
* Starting to rendering while preview render / compo was
  still running could crash.
* Exiting while rendering an animation would not abort the
  renderer properly, making Blender seemingly freeze.
* Fixes theoretically possible issue with setting malloc
  lock with nested threads.
* Drawing previews inside nodes could crash when those nodes
  were being rendered at the same time.

There's more crashes, manipulating the scene data or undo can
still crash, this commit only focuses on making sure the image
buffer and render result access is thread safe.


Implementation:
* Rather than assuming the render result does not get freed
  during render, which seems to be quite difficult to do given
  that e.g. the compositor is allowed to change the size of
  the buffer or output different passes, the render result is
  now protected with a read/write mutex.
* The read/write mutex allows multiple readers (and pixel
  writers) at the same time, but only allows one writer to
  manipulate the data structure.
* Added BKE_image_acquire_ibuf/BKE_image_release_ibuf to access
  images being rendered, cases where this is not needed (most
  code) can still use BKE_image_get_ibuf.
* The job manager now allows only one rendering job at the same
  time, rather than the G.rendering check which was not reliable.
2009-09-30 18:18:32 +00:00
abb49829ef Manual merge of soc-2009-kazanbas branch:
* copied I/O scripts
* copied, modified rna_*_api.c and rna_*.c

I/O scripts not working yet due to slight BPY differences and RNA changes. Will fix them later.

Not merged changes:

* C unit testing integration, because it is clumsy
* scons cross-compiling, can be merged easily later
2009-09-22 16:35:07 +00:00
f8abfce7ce Image Panels
* The image panels in the image editor and texture buttons
  should be more complete now, with working new/open,
  refreshes, and using the layout engine.
* Paint panels in image editor are now consistent with the
  ones in the 3d view toolbar.
* Curves panel also uses layout engine, and doesn't look
  squashed anymore.
2009-09-16 19:27:08 +00:00
816377cc02 Undo revision 23130 which was a merge with 2.5, a messy one because I did something wrong (svn status output: http://www.pasteall.org/7887).
The command: svn merge -r 23130:23129 https://svn.blender.org/svnroot/bf-blender/branches/soc-2009-kazanbas
2009-09-15 18:01:18 +00:00
3b2ad838e8 Merge with -r 22620:23107.
Next: update scripts and merge in 2.5.
2009-09-11 18:09:58 +00:00
Nathan Letwory
fb649d5824 * cleaning up warnings (mostly windows). A collection of other warning fixes too (undefined function, assuming int, etc.)
This compiled fine with scons/msvc and scons/mingw (gcc 4.4.0). Please test and report any problems.
2009-09-06 13:20:05 +00:00
7c786e28c4 Merge with 2.5 -r 22173:22620. 2009-08-19 09:04:49 +00:00
7d812822bd Stamp info back only for float buffer. (next commit add unsigned char).
A couple of new functions:
	BLF_width_and_height	- Merge of BLF_width and BLF_height in one call to avoid freetype2 stuff.
	BLF_buffer		- Set the buffer, size and number of channel.
	BLF_buffer_col		- Set the text color (the alpha is not used right now).
	BLF_draw_buffer		- Draw the text in the current buffer.

Also tweak a little the boundbox and draw function to avoid access the freetype2 and use the cache info.
By default the font size is 12, the UI still need work to allow change the font and size.
2009-08-18 19:26:53 +00:00
7586990ace - modified BKE_get_image_export_path so that it writes relative path if src file = dest file returning 2 in this case
- modified unit tests for ^ firstly
- incorporated Image.get_export_path into FBX exporter script
2009-08-05 07:59:49 +00:00
2065c5cf60 Merge with 2.5 -r 21756:22173. 2009-08-03 14:06:47 +00:00
4086ca58e2 - re-wrote image exporting function renaming it from BKE_export_image to BKE_get_image_export_path because now it doesn't copy
files but only manipulates paths. It produces both ablsolute and relative paths. COLLADA exporter can now use it.
- re-wrote unit test for it, this is now more compact and readable
- RNA API Image.get_export_path takes a boolean arg to indicate whether a relative or absolute path should be returned. Python scripts 
can now use it.
2009-08-03 12:02:40 +00:00
756488fbe2 2.5: Painting
Various fixes for painting, sculpting and particle edit, still
much to be done...

* Move RNA paint and sculpt structs into rna_sculpt_paint.c,
* Added Particle Edit RNA.
* Some tweaks to existing Paint RNA.

* Put texture paint and particle edit object in context.

* Fix some errors in the brush layout, properly doing None
  checks, fixing some wrong property identifiers.
* Added tool enum for texture paint and particle edit in panels.

* Allow editing brush textures in the texture buttons, still with
  a stupid toggle, ideas for how to make the connection better are
  welcome.
2009-07-25 22:31:02 +00:00