vrld
2db9bfad11
Fix PixelEffect texture unit pool.
...
Fixes two problems: (1) Overwriting externs with the same name and (2) not using unused texture units properly.
1) Sending two different images to two different effects using the same extern name would use the same image for both effects, e.g.:
effect_1:send('img', img_1)
effect_2:send('img', img_2) -- also changes img to point to img_2 in effect_1!
Fixed by localizing the name -> texture unit mapping for each pixel effect.
2) When a pixel effect was destroyed, the allocated texture units were not marked as being available again. Fixed by having a vector<bool> marking the free units instead of just a counter how many units are in use.
Still problematic: Sending more than GL_MAX_TEXTURE_IMAGE_UNITS (>= 16, depending on the implementation) images/canvases *in total* to pixel effects. Effects could hold references to used *texture-ids* and bind/unbind them dynamically on a effect switch. Con: Introduces additional complexity when switching effects. However, benchmarks by Alexander Szpakowski have shown the performance loss is negligible.
2013-01-13 16:19:27 +01:00
vrld
3b80c52cc2
Merged in slime73/love-mipmap (pull request #18 : Add mipmapping support to images)
2013-01-12 23:54:15 +01:00
rude
697f4de80a
Fix compilation issue in MSVC2012.
2013-01-12 11:28:32 +01:00
Alexander Szpakowski
36c5259e12
Font objects now have mipmap filter and mipmap sharpness support
2013-01-07 16:31:48 -04:00
Alexander Szpakowski
a6f4a3ab0f
Removed names of unused parameters to quiet noisy compilers
2013-01-07 07:29:04 -04:00
Alexander Szpakowski
e5388ff73b
Removed more unnecessary tabs in blank lines
2013-01-07 07:11:40 -04:00
Alexander Szpakowski
eb98e8cc48
Removed unnecessary tabs in empty lines, fixed texture filtering when the minification and mipmap filter are the same
2013-01-07 06:56:59 -04:00
Alexander Szpakowski
8b3fb1d71c
Code cleanup
2013-01-02 17:19:41 -04:00
Alexander Szpakowski
1de26ea1fa
Added "mipmap" love.graphics.isSupported string
2013-01-02 05:55:50 -04:00
Alexander Szpakowski
2d077758d1
Fixed mipmap generation for pre-FBO systems, fixed NPOT check if mipmap filtering is enabled on an image before the texture is created
2013-01-02 05:29:17 -04:00
Alexander Szpakowski
f067e228b4
Fixed mipmap sharpness setting not being correctly reapplied on resolution change
2013-01-02 04:44:24 -04:00
Alexander Szpakowski
fda16e27cd
Changed image mipmap api: Image:setFilter now takes an optional third argument (mipmap filter mode), Image:get/setMipmapFilter is removed.
2013-01-02 04:21:22 -04:00
Alexander Szpakowski
2739ea561a
Initial image mipmapping implementation. Includes Image:set/getMipmapFilter and Image:set/getMipmapSharpness. setMipMapFilter requires a filter mode, or nil to disable mipmapping.
...
Enabling mipmapping on an image that does not have power-of-two dimensions will raise an error, due to inconsistent support in older graphics chipsets
2013-01-02 02:50:13 -04:00
Alexander Szpakowski
ab98b0de45
Added mipmap support to Image filter struct and OpenGL texture filter helper functions
2013-01-01 21:44:27 -04:00
Alexander Szpakowski
1678252b7a
Applied patch from issue #542 (texture filtering inconsistencies) in main LÖVE repository
2013-01-01 21:29:38 -04:00
Alexander Szpakowski
a8dc813258
Text drawing performance improvements (issue #532 )
2012-12-15 22:18:40 +01:00
Bart van Strien
68a895e7c6
Catch errors in love.font.newRasterizer, add luax_pconvobj which pcalls, allowing love.graphics.newFont to clean up before re-erroring
2012-12-15 14:26:46 +01:00
Bart van Strien
82ea98aa65
Disable Data:getPointer (issue #520 )
2012-12-15 14:13:23 +01:00
Bart van Strien
b10ff8da42
Apply patch that fixes File:read from reading too much (on EOF) (bug #530 )
2012-12-15 13:58:34 +01:00
vrld
62e2c752e5
More verbose VertexIndex::getType() (using numeric_limits)
2012-12-01 14:00:05 +01:00
vrld
b0abcbda71
Fix: Returning wrong type in VertexIndex::getType()
2012-11-28 16:14:10 +01:00
vrld
8bbf68c69c
Match types in VertexIndex::getType()
2012-11-28 16:01:04 +01:00
vrld
dcfc18192d
Fix issue #494 : Source:getDistance doesn't work
2012-11-23 10:24:15 +01:00
vrld
b2f1408b12
Fix issue #495 : Large spritebatches doesn't render properly
2012-11-23 10:23:44 +01:00
vrld
7c2889afae
Fix issue #514 : Redundant if-clause in ImageData::paste
2012-11-23 09:12:07 +01:00
vrld
6882c2c32c
Close issue #519 : Maximum stack depth reached error message.
2012-11-23 09:08:36 +01:00
vrld
c782093374
Intel gets their way
2012-11-22 21:24:43 +01:00
vrld
a35b4232e1
Use opengl buffer ARB constistently in VertexBuffer.
2012-11-22 21:07:35 +01:00
vrld
6ffb9d28f0
VertexBuffer/SpriteBatch speed tweaks.
...
- VertexBuffer holds permanent copy of the vertex data and is only read from
GPU memory was written outside a sb:bind()/sb:unbind() pair.
- "Orphan" the current GPU buffer on unmap() before uploading the changed data
to the GPU to avoid implicit synchronisation lags.
2012-11-22 20:59:47 +01:00
Bart van Strien
4de936ed75
Fix love.physics.getDistance
2012-11-19 21:10:28 +01:00
Bart van Strien
d24c0344c8
Make second argument to setDefaultImageFilter Image:setFilter and Image:setWrap optional, and default to the first
2012-11-18 19:18:37 +01:00
Bart van Strien
3a47bafd41
Add Source:isPlaying
2012-11-18 19:01:51 +01:00
Bart van Strien
94516e2290
Catch possible exceptions thrown when locking a SpriteBatch twice
2012-11-18 18:48:37 +01:00
rude
54498ce378
Apply slime73's ParticleSystem patch.
2012-11-18 11:02:30 +01:00
rude
2149ecdf44
Use "L" to force wide literal string.
...
If multi-byte character set is chosen, TEXT() does not produce a wide string,
causing compilation errors.
2012-11-18 10:53:17 +01:00
vrld
31f98ebf52
Fix #234 again. Of course this means the texture coordinates are flipped
...
again...
2012-10-18 13:29:13 +02:00
vrld
f3bf2bbfe5
Fix bug where the compat message crashed love.
...
If in conf.lua `t.screen' is set to false or nil, the OpenGL context will not
be initialized, leading to a crash in 'Font::print()' when printing the compat
message later on.
2012-10-17 18:36:32 +02:00
vrld
6c850fdc98
Possibly (code in issue does not fail on my machine) fix #486 . Please test.
2012-10-15 17:13:08 +02:00
Bart van Strien
9a15ca3998
Update changelog a bit
2012-10-14 17:41:12 +02:00
Bart van Strien
33d7115887
Make love.sound.newDecoder accept FileData, and make File->read return FileData
2012-10-14 17:19:40 +02:00
vrld
e6711b2837
Fix multiplicative blend mode.
2012-10-12 13:52:16 +02:00
vrld
48f5afcc0e
Throw error if invalid canvas type was supplied in l.g.newCanvas()
2012-10-12 13:14:40 +02:00
vrld
ccdf6e1c00
Fix Issue #476 : Add HDR Canvas (thanks, Alexander Szpakowski!).
...
* Add `love.graphics.isSupported("hdrcanvas")' to query whether the hardware
actually supports HDR canvases.
* Add optional third argument to `love.graphics.newCanvas(w,h, type)', where
`type' is one of "normal" or "hdr" and defaults to "normal". HDR canvases
use floating point that can have values > 1 to store pixels, allowing for
HDR rendering and other higher level lighting techniques when combined with
pixel effects.
* Add `canvas:getType()'.
2012-10-11 22:22:10 +02:00
Jay Roberts
7364e52ebc
Add math.cpp to Xcode project and fix GME framework path.
2012-10-09 13:05:13 -04:00
vrld
c75bc199ae
Remove ARB checks in PixelEffect::isSupported().
...
ARB fragment shaders shouldn't support GLSL 1.2 anyway.
2012-10-04 17:27:31 +02:00
vrld
e05e5f1d54
Add math.cpp to VS project file
2012-10-01 22:13:29 +02:00
vrld
5e3e24dcfb
love.run(): Sleep after presenting graphics buffer.
...
Less sluggish controls w/o vsync.
2012-10-01 22:11:51 +02:00
vrld
a39ddc9f1a
Close issue #480 : Extending Canvas support to cards without packed depth stencil.
2012-10-01 22:06:56 +02:00
vrld
e35854acdc
Remove love_ScreenSize from shaders.
...
PixelEffects would fail to load when screen_coords were unused.
Reopens issue #435 : "PixelEffects have flipped screen_coords.y".
2012-10-01 21:39:52 +02:00
vrld
e575c86246
Severe case of premature commit-ion.
2012-09-11 16:11:26 +02:00