FREE LINK + Demo GMZ (non-commercial usage only. A bit older version): http://www.mediafire.com/download/05d2ndwckkc3y4r/PalDrawing.zip
Demo Exe (GMS2 version): https://drive.google.com/file/d/1zy4aXgtPSbt8GOHtuEgnSSa_jz6Emwh1/view?usp=sharing
This system allows you to draw pixel art images using palettes. Basically, it's a palette swap shader, but with some advanced features.
• Did my best to make it easy-to-use. So, don't think it's some way too advanced stuff for you to use.
• High drawing performance - drawing shader is just a bit slower than normal GM's shader.
• No need to call other functions for drawing - you need only to set proper image_blend value for draw functions. Vertex batching - using palettes won't increase draw calls as long as you don't reset the shader (you don't need to set/reset it to use different palette)
• Multiple palette support - allows you to draw sprite using few different palettes. For example, different palettes for skin, clothes and hairs. You can change them separately and take advantage in some other systems as well.
• Palette effects - allows you to apply effects to palettes. Both static and animated effects are supported. Also, it allows you to use palette sprite's image indexes in effects, so you can do some interesting stuff there like lighting effect that applied only to some colors.
• Allows to pretty easily apply effects to tiles.
• Possibly speaking, it can be used with custom drawing systems like lighting engines - one palette can store additional info on shader palette, that can be used in drawing shader (specular map for example).
• Layout system, that allows to do some advanced stuff like placing palettes from different sprites to one palette.
For full description: http://gmc.yoyogames.com/index.php?showtopic=669980
-Conveted to GMS2 -Background related functions removed -Tile functionality removed since there is no functions to handle tilesets at all. Things needed at least are: get UVs of tileset on texture page (or multiple sets of UVs) AND apply blending to tileset layer (probable there is - didn't bother to check since it's impossible to implement yet anyway) -Added functions to set uniforms of shader applied with pal_fx (may be buggy though since I decided not to use it for demo in teh end) -Rewrote completely 2nd demo since there is no more tile functions. Instead there is now an example of palette editor -Included whole demo in Marketplace package