Alexander Szpakowski
16f925affa
improved GL texture binding api to take texture units into consideration
2012-12-21 20:35:32 -04:00
Alexander Szpakowski
5626b74b79
reduced unnecessary usage of glUseProgram, shadereffect is now properly detached in unloadVolatile and reattached if necessary in loadVolatile, made current and max texture units static to prevent different shaders from overwriting the value of different texture units
2012-12-21 17:43:47 -04:00
Alexander Szpakowski
5252ed28cd
changed shadereffect texture image unit counter and map to be non-static, get max texture units from max combined TIUs instead of max fragment shader TIUs, added the current MVP matrix as an argument to the vertex shader transform function, reduced code duplication in ShaderEffect::sendImage and sendCanvas
2012-12-21 05:03:50 -04:00
Alexander Szpakowski
0611234067
changed PixelEffect name to ShaderEffect, added lua-side support for vert/frag shader combinations with love.graphics.newShaderEffect, added tentative support for single-file vertex+fragment shaders
2012-12-20 21:51:31 -04:00
Alexander Szpakowski
28e3b105e9
added C++side support for combinations of vertex and fragment shaders in pixeleffects
2012-12-20 03:42:48 -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
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
b2f1408b12
Fix issue #495 : Large spritebatches doesn't render properly
2012-11-23 10:23:44 +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
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
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
vrld
31f98ebf52
Fix #234 again. Of course this means the texture coordinates are flipped
...
again...
2012-10-18 13:29:13 +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
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
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
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
vrld
fdf175d7d0
Partly fix issue #468 : Incorrect(?) detection of shader support.
...
Still need to figure out if we can use the ARB versions.
2012-09-11 15:21:39 +02:00
vrld
4ec7609d37
Fix issue #437 : Area-based particle spawn.
...
New particles are spawned around the particle emitter position according to a
configurabe distribution.
New functionality:
particlesystem:setAreaSpread(distributon, x, y)
distribution, x, y = particlesystem:getAreaSpread()
Where `distribution' is one of "none", "uniform", "normal".
`x' and `y' take different meaning based on the distribution:
* none: no area spread - particles spawned at emitter position.
* uniform: particle spawned at px,py in the rectangle around emitter
position ex,ey, i.e.:
ex - x < px < ex + x, ey - y < py < ey + y,
* normal: particle position drawn from a normal/gaussian distribution
with mean ex,ey and standard deviation x,y, i.e.:
px \in N(ex, x²), py \in N(ey, y²).
2012-09-10 19:58:44 +02:00
vrld
87c6646705
Fix #435 (for real this time). Unfixes #324 .
...
Add a extern vec2 love_ScreenSize to the pixel effects that will
be (re)set upon PixelEffect::loadVolatile() and is used to flip
the fragment coordinate.
Unfixes #324 because canvases can have different dimensions than
the screen.
2012-08-05 16:08:22 +02:00
Bart van Strien
148b0c2f6d
Correctly read filter modes in newImageFont when the implicit newRasterizer is used (issue #437 )
2012-08-03 16:01:33 +02:00
Bart van Strien
85a1787ad8
Make SpriteBatch:setColor accept a table as well (issue #459 )
2012-08-03 15:27:59 +02:00
Bart van Strien
b10bc87b9a
Make love.graphics.setCanvas(nil) error
...
This helps detect typoes, setCanvas() still works as before
2012-07-21 17:51:54 +02:00
Marc Lepage
e5c4f7f43c
Remove call to glAlphaFunc as alpha testing is never enabled.
2012-07-17 21:33:16 -04:00
Marc Lepage
4cc0056a21
Fix some typos in comments.
2012-07-12 00:21:25 -04:00
vrld
6d02057864
Close issue #408 : printf-justify alignment.
...
Add letter_spacing argument to Font::print(). Might be worth to expose to Lua
at some point. Justify alignment may result in mushy/blurred glyphs.
2012-07-08 13:37:09 +02:00
vrld
12f714bf74
Issue #419 : Make font:getWidth(str) account for newlines.
2012-07-05 16:15:38 +02:00
vrld
85fa71c519
Make love.graphics.getFont() return (and set) default font when no font set.
...
Use closures instead of love.graphics.print(f)1() and love.graphics.newFont1.
2012-07-05 16:14:44 +02:00
Bart van Strien
7793e7f02f
CRLF to LF
2012-07-04 14:40:24 +02:00
rude
81c38e22d0
Applied the new style guidelines.
...
Well, sort of. Lot's more to be done, but this is a start.
2012-06-28 23:52:33 +02:00
Bart van Strien
bc4e59ba24
Apply the line width patch
2012-06-11 17:06:57 +02:00
Bart van Strien
1b568fdf39
Make setMode get the actual width and height after setting, fixes bug with width and height 0 (aka desktop resolution)
2012-05-18 17:46:00 +02:00
Bart van Strien
1e00f0f981
Move the default image filter to the Image class, instead of Graphics applying it on newImage
2012-05-18 17:35:51 +02:00
Bart van Strien
1a89622262
Fonts and ImageFonts now use the default image filter, newImageFont gets a second and third argument, to optionally specify the filters
2012-05-18 17:23:50 +02:00
vrld
26780681ea
Remove artifacts at line endings (see 4f9c5db78143).
2012-05-09 17:45:50 +02:00
vrld
b5f3addd35
Remove antialiasing artifacts when drawing lines at a very big scale.
...
When drawing lines at scales>1 the inner workings (gradients) of the
antialiasing too were upscaled and became visible. When the scale was very
large this produced interesing yet unexpected visuals.
2012-05-09 17:17:16 +02:00
vrld
d4c59d3508
Fix issue #406 : Empty glyphs cause some ATI cards to crash in Font::addGlyph().
2012-04-03 13:55:12 +02:00
vrld
340ee8442d
Fix issue #397 : printf does not center string correctly.
2012-03-22 13:11:35 +01:00
vrld
39e1c59989
Actually copy existing buffer data to temporary memory region in VBO::map().
2012-03-07 23:33:27 +01:00
vrld
6dee041a9d
Throw exception when VBO cannot allocate enough memory in VBO::map().
2012-03-07 23:26:03 +01:00