Commit Graph

46 Commits

Author SHA1 Message Date
e84c0980a3 correct indentation and some whitespace edits (no functional changes) 2011-11-11 13:09:14 +00:00
4a04f72069 remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
1f1481841d fix [#27478] Crash on image editor after loading exr images
patch from Ryakiotakis Antonis (psy-fi) with minor change.
2011-05-25 11:06:30 +00:00
8fdebf24f4 harmless changes to quiet clang static check warnings.
- made EXPANDED_AGRP take bAnimContext as an argument.
- remove unneeded NULL check drawFacesColored functions.
- comment some vars which are set but not used.
2011-04-24 10:51:45 +00:00
f9f771cd01 converted more mixed tab/space indentations to tabs. only whitespace changes. 2011-04-21 15:53:30 +00:00
210ee1ade4 whitespace only, no functional change mixed tabs/spaces --> tabs. 2011-04-21 13:11:51 +00:00
b305a26d2f fix for own assert with image scaling, wasnt working with float images. 2011-04-08 03:53:40 +00:00
9c8f1e2ef4 imbuf, mathutils & readfile: floats were being implicitly promoted to doubles, adjust to use floats. 2011-03-27 17:12:59 +00:00
e0871e07df bugfix [#26502] segmentationfault on pressing button to browse existing images for UV window
really old one!, since initial commit blender would crash scaling down large sizes eg: 60962 -> 128 (width or height).

the problem is scaledownx/y doesn't check buffer endpoints, with really large images theres a loop on a float value which can fail with large image sizes.

previous commit added asserts if the buffer runs over (assuming it doesnt crash),
This commit changes an epsilon value, tested this with random small images as well as images over 200,000 px, and it works fine, this is still flakey though and for really really big images it probably still fails.
2011-03-17 11:08:25 +00:00
172f3337ce BLI_assert's for when scaledownx / scaledowny don't use the buffer correctly (theres a buffer overrun here [#26502]). 2011-03-17 10:37:48 +00:00
719afd2622 changed short's to int's image scale and flip functions (images can be bigger then short range) 2011-03-17 05:15:54 +00:00
c7fccc84bf use NULL rather then 0 for pointer assignments & comparison, modifier, imbuf & editors. 2011-03-05 10:29:10 +00:00
Nathan Letwory
192ab99b5c doxygen: blender/imbuf tagged. 2011-02-27 20:23:21 +00:00
Nathan Letwory
5b607701a7 doxygen: prevent GPL license block from being parsed as doxygen comment. 2011-02-23 10:52:22 +00:00
9ac68ad4ab Bugfix #22040
Old bug report:

Image Editor, Painting: crash when texture was visible in 
Material or Texture preview. Was caused by paint code
freeing mipmaps. Now replaced with a mipmap tag (to be done
again), and a new mipmap function that doesn't re-allocate.
2010-12-14 18:02:41 +00:00
8268a4be71 most unused arg warnings corrected.
- removed deprecated bitmap arg from IMB_allocImBuf (plugins will need updating).
- mostly tagged UNUSED() since some of these functions look like they may need to have the arguments used later.
2010-10-16 14:32:17 +00:00
8df244f20d images bigger then 32k no longer crash blender, use unsigned int for image size rather then short.
also check if jpeg fails to allocate an imbuf.
2010-09-28 10:03:56 +00:00
dda1db08ee Spell fix, reported by troy_s in IRC. 2010-09-01 21:06:25 +00:00
d1759639dc - remove unused includes IMB_*, BIF_* & MEM_*
- remove MEM_guardedalloc.h from header files (include directly)
2010-08-16 05:46:10 +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
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
b1a393e815 Bugfix #18733 & #18609 (revisited)
New imbuf scaling code, advertised as "quick and quality" gave
inacceptable noise and rounding errors. 

Check this bugreport for images that show it well:
http://projects.blender.org/tracker/?func=detail&atid=125&aid=18609&group_id=9

For release, better disable this code and fall back on perfectly
working old code. :)
2009-05-18 10:34:26 +00:00
988fbb88dc bugfix #18609
This fixes a commit from Peter, revision 12931, Dec 17 2007
He added quick image scaling code, derived from ppmqscale, 
http://libdv.sf.net

This implementation gave ugly banding. especially visible on
dark colors or byte images with very close colors.

Solution is to add correct rounding, seems to me normal for such
fixed point magic. Optimizing code and keeping quality is tricky
dudes! Results for scaling down in sequencer were bad for over a
year (2.47 and 2.48 both wrong).
2009-04-29 11:20:07 +00:00
fdceee0088 Bugfix #18266
Mipmap creation for render crashed, in this case:
- use Curves tool on an Image, which is UV mapped on object
- Save the image to disk, under new name
- Render (F12)

This fix is only for the crash, there's something not well coded
for Curves tool, how it manages float buffers. That's for 2.5.
2009-04-06 09:05:37 +00:00
0c5adb7504 Win64: compiles fine with scons with gcc now 2008-08-17 17:22:10 +00:00
fd0072e77c Win64: please check my changes if you ran across them ;) But should be fine since no additional crashes were reported! 2008-08-17 17:08:00 +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
ec1262944e Bugfix: scaling images anti-aliased with either the width or height
staying the same did not work correct (showed up in the sequencer).
2008-04-09 17:14:02 +00:00
a8d47b37e5 Just removed some unused vars cleaning up some little warnings.
Kent
2008-02-08 15:36:39 +00:00
19e37e4a35 == Sequencer / Imbuf ==
Added a faster linear interpolation scaler to IMB_scaleImBuf.
Only handles common cases when we either

enlarge both, width and height or
shrink  both, width and height

but that is pretty fast:
* does only blit once instead of two passes like the old code
  (fewer cache misses)
* uses fixed point integer arithmetic for byte buffers
* doesn't branch in tight loops
  Should be comparable in speed to the ImBuf ..._fast functions at least 
  for byte-buffers.

For the rather seldom situations that e.g. width is enlarged and height 
is shrunken, the old code is still in use.

-------
Also small fix in sequencer: free float buffers on read now.
2008-01-30 15:41:02 +00:00
c778c7f286 Paprmh's fix for the blur plugin.
Kent
2007-01-22 17:43:36 +00:00
bcb16ea280 Patch #4970 (brecht)
Added: Scale node in Compositor.

- Only works for RGBA buffers now
- I have added an option "Relative" or "Absolute" scale. So you can also
  define actual pixels for scale. Values for scale are reset when you
  switch, to prevent too weird situations.
- Scaling wasn't foreseen to work with the preview-panel in UV window, this
  preview cropping only happens for Image and RenderResult nodes... actually
  should be done for the scale too. I wait with t hat though... this preview
  method isn't very advanced yet.
- The pass_on_compbuf() here crashed in tests with preview panel, that's
  weak code... I have to recode that. For time being I use the
  dupalloc_compbuf to have it stable.
2006-09-14 12:21:18 +00:00
c4229b0272 ==Sequencer==
Fixed the blur-plugin (and maybe a lot more) crashes by expecting
future float-buffer aware sequencer-plugins to have a bumped PLUGIN_VERSION
number. Since quality and speed is degraded by converting the float
buffer first to byte, performing the effect on bytes and then converting
back again an additional warning is displayed in the effect strip,
suggesting to update the used sequencer-plugins.

Fixed some more crashes along the way.

Float buffer aware sequencer plugins should
- first check, if the output-ibuf has a rect_float
  => perform all operations with floats (input and output)
- if not: perform everything on bytes (intput and output)
2006-06-10 19:56:28 +00:00
fe3506f6d4 WIP commit on getting the 'render result layers' saved in a single
file. Previous fix accidentally committed parts of that... :)

Note: it is currently disabled still... will commit the real version
soon.
2006-03-14 17:48:40 +00:00
b86d85f80b Interpolated scaling for float buffers in Imbuf still went wrong...
leftover bugs of first migration to floats in imbuf. :)

As extra I've reshuffled the mainloops for scaling, it's now twice as
fast.
2006-03-14 09:40:55 +00:00
6c1856f2a7 More bugs in float imbuf scaling code... an x and y were mixed up, causing
memory troubles.
2006-03-12 21:26:34 +00:00
bf1032a80f Scaling code in imbuf didn't like float buffers enough yet 2006-03-12 19:53:23 +00:00
89fe29055b When imbuf has both float and byte rects, the scale-fast function crashed. 2006-03-09 11:25:20 +00:00
327d413eb3 this patch features several cleanups and bugfixes for the sequencer:
- blur works again (this was a serious bug in gamwarp...)
- seperates all sequence effects into a seperate file with a clean interface
- thereby fixing some obscure segfaults
- seperates the scope views into a seperate file
- adds float support to all effects and scope views
- removes a bad level call to open_plugin_seq
- FFMPEG seeking improved a lot.
- FFMPEG compiles with debian sarge version cleanly
- Makes hdaudio seek and resample code really work
2006-03-07 20:01:12 +00:00
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
014aa7261e Orange branch: OpenEXR finally in Blender!
Credits go to Gernot Ziegler, who originally coded EXR support, and to
Austin  Benesh for bringing it further. Kent Mein provided a lot of code
for integrating float buffers in Blender imbuf and ImBuf API cleanup,
and provided Make and Scons and static linking.

At this moment; the EXR libraries are a *dependency*, so you cannot get
the Orange branch compiled without having OpenEXR installed. Get the
(precompiled or sources) stuff from www.openexr.com. Current default is
that the headers and lib resides in /user/local/

Several changes/additions/fixes were added:

- EXR code only supported 'half' format (16 bits per channel). I've added
  float writing, but for reading it I need tomorrow. :)
- Quite some clumsy copying of data happened in EXR code.
- cleaned up the api calls already a bit, preparing for more advanced
  support
- Zbuffers were saved 16 bits, now 32 bits
- automatic adding of .exr extensions went wrong

Imbuf:

- added proper imbuf->flags and imbuf->mall support for float buffers, it
  was created for *each* imbuf. :)
- found bugs for float buffers in scaling and flipping. Code there will
  need more checks still
- imbuf also needs to be verified to behave properly when no 32 bits
  rect exists (for saving for example)

TODO:

- support internal float images for textures, backbuf, AO probes, and
  display in Image window

Hope this commit won't screwup syncing with bf-blender... :/
2006-01-09 00:40:35 +00:00
8e92ee8684 - remove all obsolete inclusions of BLI_winstuff.h (due to recent changes)
NOTE: BLI_winstuff.h was meant to be a wrapper around windows.h to handle
undefining various crap that windows.h defines. Platform specific headers
should only have to be included in a few places. This reduces the number
of inclusions of BLI_winstuff.h to 16 which is a much more reasonable
number (than the 144 or whatever it used to be)
2005-03-19 21:08:13 +00:00
3bbc65a5f4 This is a pretty lame commit but here it is:
I just fixed indentation (replaced spaces with tabs where needed) and removed
#include config.h stuff from the above files.

Kent
2005-01-03 19:53:04 +00:00
d0e346d544 updated .c files to include:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

Just need to finish cpp files now :)

Kent
--
mein@cs.umn.edu
2002-11-25 12:02:15 +00:00
Hans Lambermont
12315f4d0e Initial revision 2002-10-12 11:37:38 +00:00