Difference between revisions of "love.graphics.setBlendMode"

m (The 'multiply' blend mode must be used with premultiplied alpha, the example given would throw an error.)
m
 
(3 intermediate revisions by 3 users not shown)
Line 3: Line 3:
  
 
== Function ==
 
== Function ==
=== Synopsis ===
 
<source lang="lua">
 
love.graphics.setBlendMode( mode )
 
</source>
 
=== Arguments ===
 
{{param|BlendMode|mode|The blend mode to use.}}
 
=== Returns ===
 
Nothing.
 
 
== Function ==
 
{{newin|[[0.10.0]]|100|type=variant}}
 
 
=== Synopsis ===
 
=== Synopsis ===
 
<source lang="lua">
 
<source lang="lua">
Line 20: Line 9:
 
=== Arguments ===
 
=== Arguments ===
 
{{param|BlendMode|mode|The blend mode to use.}}
 
{{param|BlendMode|mode|The blend mode to use.}}
 +
{{New feature|0.10.0|
 
{{param|BlendAlphaMode|alphamode ("alphamultiply")|What to do with the alpha of drawn objects when blending.}}
 
{{param|BlendAlphaMode|alphamode ("alphamultiply")|What to do with the alpha of drawn objects when blending.}}
 +
}}
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
Line 26: Line 17:
 
The default "alphamultiply" alpha mode should normally be preferred except when drawing content with pre-multiplied alpha. If content is drawn to a [[Canvas]] using the "alphamultiply" mode, the Canvas texture will have pre-multiplied alpha afterwards, so the "premultiplied" alpha mode should generally be used when drawing a Canvas to the screen.
 
The default "alphamultiply" alpha mode should normally be preferred except when drawing content with pre-multiplied alpha. If content is drawn to a [[Canvas]] using the "alphamultiply" mode, the Canvas texture will have pre-multiplied alpha afterwards, so the "premultiplied" alpha mode should generally be used when drawing a Canvas to the screen.
  
==Example==
+
== Examples ==
 
<source lang="lua">
 
<source lang="lua">
 
function love.load()
 
function love.load()
love.graphics.setBackgroundColor(54/255, 172/255, 248/255)
+
love.graphics.setBackgroundColor(.21, .67, .97)
 
end
 
end
  
 
function love.draw()
 
function love.draw()
love.graphics.setBlendMode("alpha") --Default blend mode
+
love.graphics.setBlendMode("alpha") -- Default blend mode.
love.graphics.setColor(230/255, 44/255, 123/255)
+
love.graphics.setColor(.90, .17, .48)
love.graphics.rectangle("fill", 50, 50, 100, 100)
+
love.graphics.rectangle("fill", 50,50, 100,100)
+
 
love.graphics.setColor(12/255, 100/255, 230/255)
+
love.graphics.setColor(.04, .39, .90)
 
love.graphics.setBlendMode("multiply", "premultiplied")
 
love.graphics.setBlendMode("multiply", "premultiplied")
love.graphics.rectangle("fill", 75, 75, 125, 125)
+
love.graphics.rectangle("fill", 75,75, 125,125)
 
end
 
end
 
</source>
 
</source>

Latest revision as of 14:40, 5 November 2023

Available since LÖVE 0.2.0
This function is not supported in earlier versions.

Sets the blending mode.

Function

Synopsis

love.graphics.setBlendMode( mode, alphamode )

Arguments

BlendMode mode
The blend mode to use.
Available since LÖVE 0.10.0
BlendAlphaMode alphamode ("alphamultiply")
What to do with the alpha of drawn objects when blending.

Returns

Nothing.

Notes

The default "alphamultiply" alpha mode should normally be preferred except when drawing content with pre-multiplied alpha. If content is drawn to a Canvas using the "alphamultiply" mode, the Canvas texture will have pre-multiplied alpha afterwards, so the "premultiplied" alpha mode should generally be used when drawing a Canvas to the screen.

Examples

function love.load()
	love.graphics.setBackgroundColor(.21, .67, .97)
end

function love.draw()
	love.graphics.setBlendMode("alpha") -- Default blend mode.
	love.graphics.setColor(.90, .17, .48)
	love.graphics.rectangle("fill", 50,50, 100,100)

	love.graphics.setColor(.04, .39, .90)
	love.graphics.setBlendMode("multiply", "premultiplied")
	love.graphics.rectangle("fill", 75,75, 125,125)
end

See Also


Other Languages