ID:2813589
 
Resolved
When drawing a plane master to a render source, if the blend_mode was not BLEND_OVERLAY and there was some visual aspect of the plane requiring a temporary surface (alpha, filter, etc.), the blend mode was inappropriately applied to the render_target slate.
BYOND Version:514
Operating System:Windows 10 Pro 64-bit
Web Browser:Firefox 102.0
Applies to:Dream Seeker
Status: Resolved (514.1586)

This issue has been resolved.
Descriptive Problem Summary:
If a plane master has its blend_mode set to BLEND_MULTIPLY, and uses render_target, editing a variety of its appearance related variables (transform, alpha, filters) will cause the plane master to just go invisible.

Numbered Steps to Reproduce Problem:
Create plane master with blend_multiply
Create render relay (screen object that uses render_source to copy over the plane master, and plane to draw it to another plane master)
Create another plane master

Set the alpha variable of the first plane master to 254. Or edit its transform at all, or add any sort of filter.

Code Snippet (if applicable) to Reproduce Problem:
https://github.com/LemonInTheDark/basic-test-project/tree/ blend_hell
See src/windows.dm

Expected Results:
Normal behavior

Actual Results:
Suffering

Does the problem occur:
Every time? Or how often? yes
In other games? seen in /tg/ ss13, tested in bare dm
In other user accounts? N/A
On other computers? N/A

When does the problem NOT occur?
not sure what this means in this context

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
N/A

Workarounds:
Create holder objects to relay onto that set blend_mode to multiply for all render_sources that want it, rather then using the plane master itself. I think.
Lummox JR resolved issue with message:
When drawing a plane master to a render source, if the blend_mode was not BLEND_OVERLAY and there was some visual aspect of the plane requiring a temporary surface (alpha, filter, etc.), the blend mode was inappropriately applied to the render_target slate.