FREE LINK + Demo GMZ (non-commercial usage only):

Demo Exe:

This system allows you to draw pixel art images using palettes. Basically, it's a palette swap shader, but with some advanced features.

Main 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:

End User Licence Agreement (EULA).

Changes in 0.8.7

  • Fixed a rare problem when asset searcher crashed if you used some rare symbol in asset's name (not sure which)
  • Palette generation should not crash anymore when "offset" for generation was unspecified (that goes for all hidden palette generations as well). Not sure why it worked fine before.

Version 0.8.7. Published November 26, 2015

Created with GameMaker: Studio v1.4.1675

Age Rating: 4+

Average Rating

Your review

You can only review assets you've bought.


deciia w 15 October 2015

I love it!

Look forward to the next Marketplace asset.

This review was left for a previous version of this asset.


Jonathan E 12 October 2015

I love it!

Fast and very easy to implement, pretty much exactly what you could ask from it.

This review was left for a previous version of this asset.

Package contents

Total size 27 KB 27.8 KB PaletteDrawing
asset_search.ext 0 Bytes fx.ext 0 Bytes layouts.ext 0 Bytes mapping.ext 0 Bytes pages.ext 0 Bytes palettes.ext 0 Bytes tasks.ext 0 Bytes Assets
asset_search_find.gml 635 Bytes asset_search_init.gml 1.54 KB colour_get_alpha.gml 76 Bytes colour_rgba_to_rgb.gml 81 Bytes colour_rgb_to_rgba.gml 83 Bytes ds_foreach.gml 846 Bytes ds_list_remove.gml 139 Bytes ds_map_get_list.gml 289 Bytes ds_map_get_map.gml 281 Bytes ds_nested_destroy.gml 1.28 KB ifelse.gml 93 Bytes make_color_rgba.gml 127 Bytes math_get_base.gml 227 Bytes math_texture_power.gml 176 Bytes pal_draw_begin.gml 1.31 KB pal_draw_end.gml 68 Bytes pal_draw_getBlend.gml 299 Bytes pal_free.gml 281 Bytes pal_fx_active.gml 107 Bytes pal_fx_animation.gml 361 Bytes pal_fx_anim_time.gml 259 Bytes pal_fx_blend.gml 550 Bytes pal_fx_blendmode.gml 513 Bytes pal_fx_blendmode_change.gml 238 Bytes pal_fx_blink.gml 1.66 KB pal_fx_clear.gml 199 Bytes pal_fx_color.gml 323 Bytes pal_fx_color_change.gml 166 Bytes pal_fx_destroy.gml 407 Bytes pal_fx_group_begin.gml 405 Bytes pal_fx_group_end.gml 186 Bytes pal_fx_group_find.gml 476 Bytes pal_fx_palette.gml 946 Bytes pal_fx_palette_change.gml 228 Bytes pal_fx_setActive.gml 682 Bytes pal_fx_shader.gml 387 Bytes pal_fx_shader_change.gml 198 Bytes pal_fx_target.gml 898 Bytes pal_fx_target_change.gml 448 Bytes pal_generate.gml 687 Bytes pal_group_get_background.gml 111 Bytes pal_group_get_sprite.gml 99 Bytes pal_init.gml 1.96 KB pal_layouts_merge.gml 1.06 KB pal_layout_begin.gml 585 Bytes pal_layout_destroy.gml 219 Bytes pal_layout_end.gml 130 Bytes pal_layout_find.gml 409 Bytes pal_layout_get.gml 132 Bytes pal_layout_slot.gml 914 Bytes pal_layout_slot_auto.gml 253 Bytes pal_layout_space.gml 161 Bytes pal_layout_tag.gml 905 Bytes pal_map_action.gml 3.82 KB pal_map_auto.gml 2.14 KB pal_map_background.gml 588 Bytes pal_map_background_separate.gml 419 Bytes pal_map_get_palettes.gml 561 Bytes pal_map_palette.gml 856 Bytes pal_map_sprite.gml 655 Bytes pal_map_sprite_separate.gml 395 Bytes pal_map_tag.gml 527 Bytes pal_palette_create.gml 1.36 KB pal_palette_default_clear.gml 309 Bytes pal_palette_default_get.gml 402 Bytes pal_palette_default_get_back.gml 422 Bytes pal_palette_default_get_sprite.gml 411 Bytes pal_palette_destroy.gml 884 Bytes pal_palette_group.gml 564 Bytes pal_palette_random.gml 462 Bytes pal_palette_select.gml 243 Bytes pal_palette_slot.gml 1.47 KB pal_shader_register.gml 694 Bytes pal_tag.gml 521 Bytes pal_tiles_clear.gml 411 Bytes pal_tiles_parse.gml 489 Bytes pal_tiles_parse_custom.gml 1.54 KB pal_update.gml 3.8 KB script_execute_list.gml 2.15 KB _pal_free_drawing.gml 60 Bytes _pal_free_fx.gml 60 Bytes _pal_free_generation.gml 241 Bytes _pal_free_layouts.gml 170 Bytes _pal_free_mapping.gml 643 Bytes _pal_free_pages.gml 135 Bytes _pal_free_palettes.gml 314 Bytes _pal_free_shaders.gml 205 Bytes _pal_free_surface.gml 55 Bytes _pal_free_tasks.gml 236 Bytes _pal_fx_apply.gml 1.81 KB _pal_fx_changed.gml 91 Bytes _pal_fx_create.gml 714 Bytes _pal_fx_destroy.gml 766 Bytes _pal_fx_doBlendmode.gml 153 Bytes _pal_fx_doColor.gml 634 Bytes _pal_fx_doPalette.gml 2.31 KB _pal_fx_doShader.gml 106 Bytes _pal_fx_doTargets.gml 80 Bytes _pal_get_group.gml 231 Bytes _pal_get_group_back.gml 244 Bytes _pal_get_slotname.gml 136 Bytes _pal_get_slot_layout.gml 304 Bytes _pal_get_slot_palette.gml 348 Bytes _pal_group_make_surface.gml 3.38 KB _pal_init_drawing.gml 221 Bytes _pal_init_fx.gml 360 Bytes _pal_init_generation.gml 128 Bytes _pal_init_layouts.gml 348 Bytes _pal_init_mapping.gml 521 Bytes _pal_init_pages.gml 247 Bytes _pal_init_palettes.gml 1.11 KB _pal_init_shaders.gml 992 Bytes _pal_init_surface.gml 1.39 KB _pal_init_tasks.gml 485 Bytes _pal_layout_complete.gml 591 Bytes _pal_layout_continue.gml 122 Bytes _pal_layout_create.gml 297 Bytes _pal_layout_update.gml 415 Bytes _pal_map_get.gml 186 Bytes _pal_map_group.gml 776 Bytes _pal_map_set.gml 108 Bytes _pal_map_setShader.gml 907 Bytes _pal_page_destroy.gml 237 Bytes _pal_page_draw_background.gml 767 Bytes _pal_page_draw_sprite.gml 1 KB _pal_page_get.gml 1.25 KB _pal_palettes_recreate.gml 224 Bytes _pal_palettes_resize.gml 213 Bytes _pal_palette_draw.gml 839 Bytes _pal_palette_draw_subimage.gml 1.06 KB _pal_palette_generate.gml 3.8 KB _pal_palette_update.gml 442 Bytes _pal_shader_isRegistered.gml 132 Bytes _pal_surface_recreate.gml 379 Bytes _pal_tags_apply.gml 327 Bytes _pal_tasks_changed.gml 342 Bytes _pal_task_create.gml 481 Bytes _pal_task_destroy.gml 64 Bytes
Shaders Sprites

What is the issue?

Back to Top