Skip to content

Commit

Permalink
Release 2.1 prebake-rotation
Browse files Browse the repository at this point in the history
  • Loading branch information
Grisgram committed May 16, 2023
1 parent f5e6061 commit 7dfb98c
Show file tree
Hide file tree
Showing 12 changed files with 76 additions and 47 deletions.
19 changes: 9 additions & 10 deletions gml-outline-shader-drawer.resource_order
Original file line number Diff line number Diff line change
@@ -1,34 +1,33 @@
{
"FolderOrderSettings": [
{"name":"outline-shader-drawer","order":4,"path":"folders/outline-shader-drawer.yy",},
{"name":"_third_party_packages_","order":3,"path":"folders/_third_party_packages_.yy",},
{"name":"Canvas","order":1,"path":"folders/_third_party_packages_/Canvas.yy",},
{"name":"outline-shader-drawer","order":4,"path":"folders/outline-shader-drawer.yy",},
{"name":"System","order":1,"path":"folders/_third_party_packages_/Canvas/System.yy",},
],
"ResourceOrderSettings": [
{"name":"__CanvasSurfFormat","order":4,"path":"scripts/__CanvasSurfFormat/__CanvasSurfFormat.yy",},
{"name":"Canvas","order":2,"path":"scripts/Canvas/Canvas.yy",},
{"name":"__CanvasError","order":2,"path":"scripts/__CanvasError/__CanvasError.yy",},
{"name":"DemoMace","order":1,"path":"objects/DemoMace/DemoMace.yy",},
{"name":"CanvasIsCanvas","order":4,"path":"scripts/CanvasIsCanvas/CanvasIsCanvas.yy",},
{"name":"__CanvasTrace","order":6,"path":"scripts/__CanvasTrace/__CanvasTrace.yy",},
{"name":"OutlineObject","order":2,"path":"objects/OutlineObject/OutlineObject.yy",},
{"name":"seqRotatingLoop","order":2,"path":"sequences/seqRotatingLoop/seqRotatingLoop.yy",},
{"name":"OutlineLogo","order":8,"path":"objects/OutlineLogo/OutlineLogo.yy",},
{"name":"CanvasIsCanvas","order":4,"path":"scripts/CanvasIsCanvas/CanvasIsCanvas.yy",},
{"name":"sprite_to_canvas","order":5,"path":"scripts/sprite_to_canvas/sprite_to_canvas.yy",},
{"name":"Canvas","order":2,"path":"scripts/Canvas/Canvas.yy",},
{"name":"__CanvasSystem","order":5,"path":"scripts/__CanvasSystem/__CanvasSystem.yy",},
{"name":"__CanvasCleanupQueue","order":1,"path":"scripts/__CanvasCleanupQueue/__CanvasCleanupQueue.yy",},
{"name":"DemoPotion","order":6,"path":"objects/DemoPotion/DemoPotion.yy",},
{"name":"sprHellToHeaven","order":4,"path":"sprites/sprHellToHeaven/sprHellToHeaven.yy",},
{"name":"__CanvasGC","order":3,"path":"scripts/__CanvasGC/__CanvasGC.yy",},
{"name":"__CanvasCleanupQueue","order":1,"path":"scripts/__CanvasCleanupQueue/__CanvasCleanupQueue.yy",},
{"name":"__CanvasTrace","order":6,"path":"scripts/__CanvasTrace/__CanvasTrace.yy",},
{"name":"CanvasGetAppSurf","order":3,"path":"scripts/CanvasGetAppSurf/CanvasGetAppSurf.yy",},
{"name":"RotatingCoin","order":1,"path":"objects/RotatingCoin/RotatingCoin.yy",},
{"name":"DemoTextDrawer","order":3,"path":"objects/DemoTextDrawer/DemoTextDrawer.yy",},
{"name":"__CanvasSurfFormat","order":4,"path":"scripts/__CanvasSurfFormat/__CanvasSurfFormat.yy",},
{"name":"__CanvasGC","order":3,"path":"scripts/__CanvasGC/__CanvasGC.yy",},
{"name":"sprMace","order":3,"path":"sprites/sprMace/sprMace.yy",},
{"name":"sprRedPotion","order":4,"path":"sprites/sprRedPotion/sprRedPotion.yy",},
{"name":"sprOutlineTitle","order":7,"path":"sprites/sprOutlineTitle/sprOutlineTitle.yy",},
{"name":"__CanvasError","order":2,"path":"scripts/__CanvasError/__CanvasError.yy",},
{"name":"shd_outline","order":4,"path":"shaders/shd_outline/shd_outline.yy",},
{"name":"OutlineObjectBaked","order":3,"path":"objects/OutlineObjectBaked/OutlineObjectBaked.yy",},
{"name":"__CanvasSystem","order":5,"path":"scripts/__CanvasSystem/__CanvasSystem.yy",},
{"name":"outline_drawer","order":1,"path":"scripts/outline_drawer/outline_drawer.yy",},
],
}
22 changes: 11 additions & 11 deletions gml-outline-shader-drawer.yyp
Original file line number Diff line number Diff line change
Expand Up @@ -11,48 +11,48 @@
},
"defaultScriptType": 1,
"Folders": [
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"_third_party_packages_","folderPath":"folders/_third_party_packages_.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"demo","folderPath":"folders/demo.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"coin_sequence","folderPath":"folders/demo/coin_sequence.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"objects","folderPath":"folders/demo/objects.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"outline-shader-drawer","folderPath":"folders/outline-shader-drawer.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"_third_party_packages_","folderPath":"folders/_third_party_packages_.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"Canvas","folderPath":"folders/_third_party_packages_/Canvas.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"System","folderPath":"folders/_third_party_packages_/Canvas/System.yy",},
],
"IncludedFiles": [],
"isEcma": false,
"LibraryEmitters": [],
"MetaData": {
"IDEVersion": "2023.2.1.75",
"IDEVersion": "2023.4.0.84",
},
"resources": [
{"id":{"name":"__CanvasSurfFormat","path":"scripts/__CanvasSurfFormat/__CanvasSurfFormat.yy",},},
{"id":{"name":"Canvas","path":"scripts/Canvas/Canvas.yy",},},
{"id":{"name":"__CanvasError","path":"scripts/__CanvasError/__CanvasError.yy",},},
{"id":{"name":"DemoMace","path":"objects/DemoMace/DemoMace.yy",},},
{"id":{"name":"CanvasIsCanvas","path":"scripts/CanvasIsCanvas/CanvasIsCanvas.yy",},},
{"id":{"name":"__CanvasTrace","path":"scripts/__CanvasTrace/__CanvasTrace.yy",},},
{"id":{"name":"OutlineObject","path":"objects/OutlineObject/OutlineObject.yy",},},
{"id":{"name":"seqRotatingLoop","path":"sequences/seqRotatingLoop/seqRotatingLoop.yy",},},
{"id":{"name":"OutlineLogo","path":"objects/OutlineLogo/OutlineLogo.yy",},},
{"id":{"name":"CanvasIsCanvas","path":"scripts/CanvasIsCanvas/CanvasIsCanvas.yy",},},
{"id":{"name":"sprite_to_canvas","path":"scripts/sprite_to_canvas/sprite_to_canvas.yy",},},
{"id":{"name":"Canvas","path":"scripts/Canvas/Canvas.yy",},},
{"id":{"name":"sprSingleCoin","path":"sprites/sprSingleCoin/sprSingleCoin.yy",},},
{"id":{"name":"__CanvasSystem","path":"scripts/__CanvasSystem/__CanvasSystem.yy",},},
{"id":{"name":"__CanvasCleanupQueue","path":"scripts/__CanvasCleanupQueue/__CanvasCleanupQueue.yy",},},
{"id":{"name":"__CanvasAppSurf","path":"scripts/__CanvasAppSurf/__CanvasAppSurf.yy",},},
{"id":{"name":"DemoPotion","path":"objects/DemoPotion/DemoPotion.yy",},},
{"id":{"name":"sprHellToHeaven","path":"sprites/sprHellToHeaven/sprHellToHeaven.yy",},},
{"id":{"name":"__CanvasGC","path":"scripts/__CanvasGC/__CanvasGC.yy",},},
{"id":{"name":"__CanvasCleanupQueue","path":"scripts/__CanvasCleanupQueue/__CanvasCleanupQueue.yy",},},
{"id":{"name":"__CanvasTrace","path":"scripts/__CanvasTrace/__CanvasTrace.yy",},},
{"id":{"name":"CanvasGetAppSurf","path":"scripts/CanvasGetAppSurf/CanvasGetAppSurf.yy",},},
{"id":{"name":"RotatingCoin","path":"objects/RotatingCoin/RotatingCoin.yy",},},
{"id":{"name":"DemoTextDrawer","path":"objects/DemoTextDrawer/DemoTextDrawer.yy",},},
{"id":{"name":"__CanvasSurfFormat","path":"scripts/__CanvasSurfFormat/__CanvasSurfFormat.yy",},},
{"id":{"name":"__CanvasGC","path":"scripts/__CanvasGC/__CanvasGC.yy",},},
{"id":{"name":"sprMace","path":"sprites/sprMace/sprMace.yy",},},
{"id":{"name":"sprRedPotion","path":"sprites/sprRedPotion/sprRedPotion.yy",},},
{"id":{"name":"sprOutlineTitle","path":"sprites/sprOutlineTitle/sprOutlineTitle.yy",},},
{"id":{"name":"__CanvasError","path":"scripts/__CanvasError/__CanvasError.yy",},},
{"id":{"name":"shd_outline","path":"shaders/shd_outline/shd_outline.yy",},},
{"id":{"name":"OutlineObjectBaked","path":"objects/OutlineObjectBaked/OutlineObjectBaked.yy",},},
{"id":{"name":"__CanvasSystem","path":"scripts/__CanvasSystem/__CanvasSystem.yy",},},
{"id":{"name":"outline_drawer","path":"scripts/outline_drawer/outline_drawer.yy",},},
{"id":{"name":"_OUTLINE_SHADER_DRAWER_VERSION_","path":"scripts/_OUTLINE_SHADER_DRAWER_VERSION_/_OUTLINE_SHADER_DRAWER_VERSION_.yy",},},
{"id":{"name":"__CanvasAppSurf","path":"scripts/__CanvasAppSurf/__CanvasAppSurf.yy",},},
{"id":{"name":"rmDemo","path":"rooms/rmDemo/rmDemo.yy",},},
],
"RoomOrderNodes": [
Expand Down
5 changes: 3 additions & 2 deletions objects/DemoPotion/DemoPotion.yy
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@
"managed": true,
"overriddenProperties": [
{"resourceType":"GMOverriddenProperty","resourceVersion":"1.0","name":"","objectId":{"name":"OutlineObject","path":"objects/OutlineObject/OutlineObject.yy",},"propertyId":{"name":"outline_color","path":"objects/OutlineObject/OutlineObject.yy",},"value":"c_white",},
{"resourceType":"GMOverriddenProperty","resourceVersion":"1.0","name":"","objectId":{"name":"OutlineObject","path":"objects/OutlineObject/OutlineObject.yy",},"propertyId":{"name":"use_bbox_of_sprite","path":"objects/OutlineObject/OutlineObject.yy",},"value":"False",},
],
"parent": {
"name": "objects",
"path": "folders/demo/objects.yy",
},
"parentObjectId": {
"name": "OutlineObject",
"path": "objects/OutlineObject/OutlineObject.yy",
"name": "OutlineObjectBaked",
"path": "objects/OutlineObjectBaked/OutlineObjectBaked.yy",
},
"persistent": false,
"physicsAngularDamping": 0.1,
Expand Down
2 changes: 2 additions & 0 deletions objects/DemoTextDrawer/Create_0.gml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/// @description event
//show_debug_overlay(true);
1 change: 1 addition & 0 deletions objects/DemoTextDrawer/DemoTextDrawer.yy
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"name": "DemoTextDrawer",
"eventList": [
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":0,"eventType":8,"isDnD":false,},
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,},
],
"managed": true,
"overriddenProperties": [],
Expand Down
3 changes: 2 additions & 1 deletion objects/DemoTextDrawer/Draw_0.gml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ draw_text(10, 10,
"Outline Drawer Demo\nHover the mouse over any of the objects.\n" +
"Press 1-5 to set strength of outline\n" +
"Press A to toggle alpha fading of the outline (better visuals with strength 4+)\n" +
"Mace+Potion: Press R to let the sprite rotate slowly so you can watch rotating outlines"
"Mace+Potion: Press R to let the sprite rotate slowly so you can watch rotating outlines\n" +
"The Mace uses OutlineObject and the Potion uses OutlineObjectBaked (prebaked shader)"
);

draw_set_color(c_white);
6 changes: 3 additions & 3 deletions objects/OutlineObjectBaked/Create_0.gml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ __free = function() {
/// @function bake()
bake = function() {
if (canvas != undefined) canvas.free();
log("Pre-Baking sprite '{0}' with {1} frames", sprite_get_name(sprite_index), image_number);
show_debug_message("Pre-Baking sprite '{0}' with {1} frames", sprite_get_name(sprite_index), image_number);
var begintime = current_time;
var shader = shd_outline;
var u_texel = shader_get_uniform(shader, "u_vTexel");
Expand Down Expand Up @@ -38,14 +38,14 @@ bake = function() {
canvas.canvas.Free();
// ...and inject the pre-baked
canvas.canvas = target;
log("Pre-Baking took {0}ms", current_time - begintime);
show_debug_message("Pre-Baking took {0}ms", current_time - begintime);
}

__draw = function() {
if (canvas == undefined) bake();
image_index = canvas.get_image_index(delta_time, image_speed);
if (outline_always || (outline_on_mouse_over && mouse_is_over))
canvas.draw_frame(image_index, x - outline_strength - TEXTURE_PAGE_BORDER_SIZE, y - outline_strength - TEXTURE_PAGE_BORDER_SIZE);
canvas.draw_frame_ext(image_index, x, y, depth, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
else
draw_self();
}
Expand Down
11 changes: 10 additions & 1 deletion options/operagx/options_operagx.yy
Original file line number Diff line number Diff line change
@@ -1,13 +1,22 @@
{
"resourceType": "GMOperaGXOptions",
"resourceVersion": "1.0",
"resourceVersion": "1.1",
"name": "operagx",
"option_operagx_display_cursor": true,
"option_operagx_editUrl": "",
"option_operagx_game_name": "${project_name}",
"option_operagx_guid": "",
"option_operagx_internalShareUrl": "",
"option_operagx_interpolate_pixels": true,
"option_operagx_mod_editUrl": "",
"option_operagx_mod_game_name": "${project_name}",
"option_operagx_mod_guid": "",
"option_operagx_mod_internalShareUrl": "",
"option_operagx_mod_next_version": "1.0.0.0",
"option_operagx_mod_publicShareUrl": "",
"option_operagx_mod_team_id": "",
"option_operagx_mod_team_name": "",
"option_operagx_mod_version": "1.0.0.0",
"option_operagx_next_version": "1.0.0.0",
"option_operagx_publicShareUrl": "",
"option_operagx_scale": 0,
Expand Down
30 changes: 17 additions & 13 deletions scripts/Canvas/Canvas.gml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
__CanvasError("Canvas " + string(_canvas) + " is not a valid Canvas instance!");
}

__validateContents();
__ValidateContents();
CopySurface(_canvas.GetSurfaceID(), _x, _y, _forceResize, _updateCache);
return self;
}
Expand All @@ -107,7 +107,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
__CanvasError("Canvas " + string(_canvas) + " is not a valid Canvas instance!");
}

__validateContents();
__ValidateContents();
CopySurfacePart(_canvas.GetSurfaceID(), _x, _y, _xs, _ys, _ws, _hs, _forceResize, _updateCache);
return self;
}
Expand Down Expand Up @@ -225,6 +225,10 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
__surface = -1;
}

__refContents.buff = -1;
__refContents.cbuff = -1;
__refContents.surf = -1;

if (!__isAppSurf) __status = CanvasStatus.NO_DATA;
}

Expand Down Expand Up @@ -641,7 +645,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
draw_clear_alpha(_color, _alpha);
surface_reset_target();

buffer_fill(__buffer, 0, buffer_u8, 0, buffer_get_size(__buffer));
__UpdateCache();
return self;
}

Expand All @@ -653,7 +657,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
/// @param {Real} x
/// @param {Real} y
static Draw = function(_x, _y) {
__validateContents();
__ValidateContents();
CheckSurface();
draw_surface(__surface, _x, _y);
}
Expand All @@ -666,15 +670,15 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
/// @param {Real} col
/// @param {Real} alpha
static DrawExt = function(_x, _y, _xscale, _yscale, _rot, _col, _alpha) {
__validateContents();
__ValidateContents();
CheckSurface();
draw_surface_ext(__surface, _x, _y, _xscale, _yscale, _rot, _col, _alpha);
}

/// @param {Real} x
/// @param {Real} y
static DrawTiled = function(_x, _y) {
__validateContents();
__ValidateContents();
CheckSurface();
draw_surface_tiled(__surface, _x, _y);
}
Expand All @@ -686,7 +690,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
/// @param {Real} colour
/// @param {Real} alpha
static DrawTiledExt = function(_x, _y, _xscale, _yscale, _col, _alpha) {
__validateContents();
__ValidateContents();
CheckSurface();
draw_surface_tiled_ext(__surface, _x, _y, _xscale, _yscale, _col, _alpha);
}
Expand All @@ -698,7 +702,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
/// @param {Real} x
/// @param {Real} y
static DrawPart = function(_left, _top, _width, _height, _x, _y) {
__validateContents();
__ValidateContents();
CheckSurface();
draw_surface_part(__surface, _left, _top, _width, _height, _x, _y);
}
Expand All @@ -714,7 +718,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
/// @param {Real} colour
/// @param {Real} alpha
static DrawPartExt = function(_left, _top, _width, _height, _x, _y, _xscale, _yscale, _col, _alpha) {
__validateContents();
__ValidateContents();
CheckSurface();
draw_surface_part_ext(__surface, _left, _top, _width, _height, _x, _y, _xscale, _yscale, _col, _alpha);
}
Expand All @@ -724,7 +728,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
/// @param {Real} width
/// @param {Real} height
static DrawStretched = function(_x, _y, _width, _height) {
__validateContents();
__ValidateContents();
CheckSurface();
draw_surface_stretched(__surface, _x, _y, _width, _height);
}
Expand All @@ -736,7 +740,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
/// @param {Real} colour
/// @param {Real} alpha
static DrawStretchedExt = function(_x, _y, _width, _height, _col, _alpha) {
__validateContents();
__ValidateContents();
CheckSurface();
draw_surface_stretched_ext(__surface, _x, _y, _width, _height, _col, _alpha);
}
Expand All @@ -756,7 +760,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
/// @param {Real} colour4
/// @param {Real} alpha
static DrawGeneral = function(_left, _top, _width, _height, _x, _y, _xscale, _yscale, _rot, _col1, _col2, _col3, _col4, _alpha) {
__validateContents();
__ValidateContents();
CheckSurface();
draw_surface_general(__surface, _left, _top, _width, _height, _x, _y, _xscale, _yscale, _rot, _col1, _col2, _col3, _col4, _alpha);
}
Expand Down Expand Up @@ -864,7 +868,7 @@ function Canvas(_width, _height, _forceInit = false, _format = surface_rgba8unor
__status = CanvasStatus.HAS_DATA;
}

static __validateContents = function() {
static __ValidateContents = function() {
if (!IsAvailable()) {
__CanvasError("Canvas has no data or in use!");
}
Expand Down
2 changes: 1 addition & 1 deletion scripts/__CanvasSystem/__CanvasSystem.gml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ function __CanvasSystem() {
}

#macro __CANVAS_CREDITS "@TabularElf - https://tabelf.link/"
#macro __CANVAS_VERSION "v2.0.0"
#macro __CANVAS_VERSION "v2.0.1"
#macro __CANVAS_ON_WEB (os_browser != browser_not_a_browser)
__CanvasTrace(__CANVAS_VERSION + " initalized! Created by " + __CANVAS_CREDITS);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#macro OUTLINE_SHADER_VERSION "2.0"
#macro OUTLINE_SHADER_VERSION "2.1"
#macro OUTLINE_SHADER_NAME "outline-shader-drawer "
#macro OUTLINE_SHADER_COPYRIGHT "(c)2022* coldrock.games, @Grisgram (github)"

Expand Down
Loading

0 comments on commit 7dfb98c

Please sign in to comment.