From ea40b466f26abc0339f8931a0fd4c41712a1d4d8 Mon Sep 17 00:00:00 2001 From: Juju Adams Date: Sat, 9 Dec 2023 12:54:46 +0000 Subject: [PATCH 1/2] Removes group renderer, bitmasks, and test case --- Bulb.yyp | 9 - objects/oDynamicOccluder2/Create_0.gml | 20 - objects/oDynamicOccluder2/Step_0.gml | 2 - objects/oDynamicOccluder2/oDynamicOccluder.yy | 37 - .../oDynamicOccluder2/oDynamicOccluder2.yy | 37 - .../Collision_oDynamicOccluder.gml | 3 - .../Collision_oStaticOccluder.gml | 3 - .../Collision_obj_par_occluder.gml | 3 - objects/oLightDiscoooo2/Create_0.gml | 7 - objects/oLightDiscoooo2/Step_0.gml | 3 - objects/oLightDiscoooo2/oLightDiscoooo.yy | 41 - objects/oLightDiscoooo2/oLightDiscoooo2.yy | 37 - objects/oPlayer2/Create_0.gml | 4 - objects/oPlayer2/Step_0.gml | 20 - objects/oPlayer2/oPlayer.yy | 38 - objects/oPlayer2/oPlayer2.yy | 37 - objects/oRenderer2/Create_0.gml | 13 - objects/oRenderer2/Draw_0.gml | 2 - objects/oRenderer2/Draw_73.gml | 2 - objects/oRenderer2/Other_5.gml | 9 - objects/oRenderer2/Step_0.gml | 1 - objects/oRenderer2/oRenderer.yy | 39 - objects/oRenderer2/oRenderer2.yy | 37 - objects/oStaticOccluder2/Create_0.gml | 30 - objects/oStaticOccluder2/oStaticOccluder.yy | 36 - objects/oStaticOccluder2/oStaticOccluder2.yy | 36 - objects/oStaticOccluderAlt2/Create_0.gml | 31 - .../oStaticOccluderAlt2/oStaticOccluder.yy | 36 - .../oStaticOccluderAlt2/oStaticOccluder2.yy | 36 - .../oStaticOccluderAlt2.yy | 36 - rooms/rmTestWithGroups/rmTestWithGroups.yy | 37 +- .../BulbDynamicOccluder.gml | 2 - scripts/BulbLight/BulbLight.gml | 18 +- scripts/BulbMakeBitmask/BulbMakeBitmask.gml | 18 - scripts/BulbMakeBitmask/BulbMakeBitmask.yy | 12 - .../BulbRendererWithGroups/BulbRenderer.yy | 12 - .../BulbRendererWithGroups.gml | 1217 ----------------- .../BulbRendererWithGroups.yy | 11 - .../BulbStaticOccluder/BulbStaticOccluder.gml | 2 - scripts/BulbSunlight/BulbSunlight.gml | 2 - scripts/__BulbConfig/__BulbConfig.gml | 7 - 41 files changed, 15 insertions(+), 1968 deletions(-) delete mode 100644 objects/oDynamicOccluder2/Create_0.gml delete mode 100644 objects/oDynamicOccluder2/Step_0.gml delete mode 100644 objects/oDynamicOccluder2/oDynamicOccluder.yy delete mode 100644 objects/oDynamicOccluder2/oDynamicOccluder2.yy delete mode 100644 objects/oLightDiscoooo2/Collision_oDynamicOccluder.gml delete mode 100644 objects/oLightDiscoooo2/Collision_oStaticOccluder.gml delete mode 100644 objects/oLightDiscoooo2/Collision_obj_par_occluder.gml delete mode 100644 objects/oLightDiscoooo2/Create_0.gml delete mode 100644 objects/oLightDiscoooo2/Step_0.gml delete mode 100644 objects/oLightDiscoooo2/oLightDiscoooo.yy delete mode 100644 objects/oLightDiscoooo2/oLightDiscoooo2.yy delete mode 100644 objects/oPlayer2/Create_0.gml delete mode 100644 objects/oPlayer2/Step_0.gml delete mode 100644 objects/oPlayer2/oPlayer.yy delete mode 100644 objects/oPlayer2/oPlayer2.yy delete mode 100644 objects/oRenderer2/Create_0.gml delete mode 100644 objects/oRenderer2/Draw_0.gml delete mode 100644 objects/oRenderer2/Draw_73.gml delete mode 100644 objects/oRenderer2/Other_5.gml delete mode 100644 objects/oRenderer2/Step_0.gml delete mode 100644 objects/oRenderer2/oRenderer.yy delete mode 100644 objects/oRenderer2/oRenderer2.yy delete mode 100644 objects/oStaticOccluder2/Create_0.gml delete mode 100644 objects/oStaticOccluder2/oStaticOccluder.yy delete mode 100644 objects/oStaticOccluder2/oStaticOccluder2.yy delete mode 100644 objects/oStaticOccluderAlt2/Create_0.gml delete mode 100644 objects/oStaticOccluderAlt2/oStaticOccluder.yy delete mode 100644 objects/oStaticOccluderAlt2/oStaticOccluder2.yy delete mode 100644 objects/oStaticOccluderAlt2/oStaticOccluderAlt2.yy delete mode 100644 scripts/BulbMakeBitmask/BulbMakeBitmask.gml delete mode 100644 scripts/BulbMakeBitmask/BulbMakeBitmask.yy delete mode 100644 scripts/BulbRendererWithGroups/BulbRenderer.yy delete mode 100644 scripts/BulbRendererWithGroups/BulbRendererWithGroups.gml delete mode 100644 scripts/BulbRendererWithGroups/BulbRendererWithGroups.yy diff --git a/Bulb.yyp b/Bulb.yyp index 35aaefa..0c2a5e3 100644 --- a/Bulb.yyp +++ b/Bulb.yyp @@ -24,7 +24,6 @@ {"id":{"name":"oPlayer3","path":"objects/oPlayer3/oPlayer3.yy",},"order":1,}, {"id":{"name":"__BulbAddOcclusionHard","path":"scripts/__BulbAddOcclusionHard/__BulbAddOcclusionHard.yy",},"order":1,}, {"id":{"name":"VertexCake","path":"scripts/VertexCake/VertexCake.yy",},"order":5,}, - {"id":{"name":"oRenderer2","path":"objects/oRenderer2/oRenderer2.yy",},"order":0,}, {"id":{"name":"__BulbConfig","path":"scripts/__BulbConfig/__BulbConfig.yy",},"order":0,}, {"id":{"name":"oRenderer3","path":"objects/oRenderer3/oRenderer3.yy",},"order":0,}, {"id":{"name":"shdPremultiplyAlpha","path":"shaders/shdPremultiplyAlpha/shdPremultiplyAlpha.yy",},"order":7,}, @@ -34,7 +33,6 @@ {"id":{"name":"oDynamicOccluder3","path":"objects/oDynamicOccluder3/oDynamicOccluder3.yy",},"order":3,}, {"id":{"name":"sLight1024","path":"sprites/sLight1024/sLight1024.yy",},"order":2,}, {"id":{"name":"__shdBulbSoftShadows","path":"shaders/__shdBulbSoftShadows/__shdBulbSoftShadows.yy",},"order":5,}, - {"id":{"name":"oLightDiscoooo2","path":"objects/oLightDiscoooo2/oLightDiscoooo2.yy",},"order":2,}, {"id":{"name":"__shdBulbPremultiplyAlpha","path":"shaders/__shdBulbPremultiplyAlpha/__shdBulbPremultiplyAlpha.yy",},"order":7,}, {"id":{"name":"BulbShadowOverlay","path":"scripts/BulbShadowOverlay/BulbShadowOverlay.yy",},"order":8,}, {"id":{"name":"oRenderer","path":"objects/oRenderer/oRenderer.yy",},"order":1,}, @@ -43,24 +41,18 @@ {"id":{"name":"BulbSunlight","path":"scripts/BulbSunlight/BulbSunlight.yy",},"order":4,}, {"id":{"name":"oInit","path":"objects/oInit/oInit.yy",},"order":1,}, {"id":{"name":"oPlayer","path":"objects/oPlayer/oPlayer.yy",},"order":3,}, - {"id":{"name":"oPlayer2","path":"objects/oPlayer2/oPlayer2.yy",},"order":1,}, {"id":{"name":"rmTestSoft","path":"rooms/rmTestSoft/rmTestSoft.yy",},"order":2,}, {"id":{"name":"oShadowOverlay","path":"objects/oShadowOverlay/oShadowOverlay.yy",},"order":8,}, {"id":{"name":"oAmbientUnderlay","path":"objects/oAmbientUnderlay/oAmbientUnderlay.yy",},"order":9,}, - {"id":{"name":"oStaticOccluderAlt2","path":"objects/oStaticOccluderAlt2/oStaticOccluderAlt2.yy",},"order":5,}, {"id":{"name":"oStaticOccluder","path":"objects/oStaticOccluder/oStaticOccluder.yy",},"order":4,}, {"id":{"name":"__shdBulbHSVValueToAlpha","path":"shaders/__shdBulbHSVValueToAlpha/__shdBulbHSVValueToAlpha.yy",},"order":10,}, - {"id":{"name":"oDynamicOccluder2","path":"objects/oDynamicOccluder2/oDynamicOccluder2.yy",},"order":4,}, {"id":{"name":"oDynamicOccluder","path":"objects/oDynamicOccluder/oDynamicOccluder.yy",},"order":5,}, - {"id":{"name":"BulbRendererWithGroups","path":"scripts/BulbRendererWithGroups/BulbRendererWithGroups.yy",},"order":2,}, {"id":{"name":"oStaticOccluder3","path":"objects/oStaticOccluder3/oStaticOccluder3.yy",},"order":2,}, {"id":{"name":"BulbAmbienceSprite","path":"scripts/BulbAmbienceSprite/BulbAmbienceSprite.yy",},"order":7,}, {"id":{"name":"oLightDiscoooo","path":"objects/oLightDiscoooo/oLightDiscoooo.yy",},"order":6,}, {"id":{"name":"oLightPlasma","path":"objects/oLightPlasma/oLightPlasma.yy",},"order":7,}, {"id":{"name":"BulbStaticOccluder","path":"scripts/BulbStaticOccluder/BulbStaticOccluder.yy",},"order":6,}, - {"id":{"name":"oStaticOccluder2","path":"objects/oStaticOccluder2/oStaticOccluder2.yy",},"order":3,}, {"id":{"name":"rmTestWithGroups","path":"rooms/rmTestWithGroups/rmTestWithGroups.yy",},"order":3,}, - {"id":{"name":"BulbMakeBitmask","path":"scripts/BulbMakeBitmask/BulbMakeBitmask.yy",},"order":10,}, {"id":{"name":"rmInit","path":"rooms/rmInit/rmInit.yy",},"order":0,}, ], "Options": [ @@ -96,7 +88,6 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Example","folderPath":"folders/Example.yy","order":2,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"rmTest Objects","folderPath":"folders/Example/rmTest Objects.yy","order":2,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"rmTestSoft","folderPath":"folders/Example/rmTestSoft.yy","order":8,}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"rmTestWithGroups Objects","folderPath":"folders/Example/rmTestWithGroups Objects.yy","order":3,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Sprites","folderPath":"folders/Example/Sprites.yy","order":0,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Rooms","folderPath":"folders/Rooms.yy","order":3,}, ], diff --git a/objects/oDynamicOccluder2/Create_0.gml b/objects/oDynamicOccluder2/Create_0.gml deleted file mode 100644 index 9dd23c0..0000000 --- a/objects/oDynamicOccluder2/Create_0.gml +++ /dev/null @@ -1,20 +0,0 @@ -image_angle = random(360); - -occluder = new BulbDynamicOccluder(oRenderer2.lighting); -occluder.x = x; -occluder.y = y; -occluder.xscale = image_xscale; -occluder.yscale = image_yscale; -occluder.angle = image_angle; -occluder.bitmask = BulbMakeBitmask(false, true); - -var _l = -0.5*sprite_get_width(sprite_index); -var _t = -0.5*sprite_get_height(sprite_index); -var _r = 0.5*sprite_get_width(sprite_index); -var _b = 0.5*sprite_get_height(sprite_index); - -//Use clockwise definitions! -occluder.AddEdge(_l, _t, _r, _t); //Top -occluder.AddEdge(_r, _t, _r, _b); //Right -occluder.AddEdge(_r, _b, _l, _b); //Bottom -occluder.AddEdge(_l, _b, _l, _t); //Left \ No newline at end of file diff --git a/objects/oDynamicOccluder2/Step_0.gml b/objects/oDynamicOccluder2/Step_0.gml deleted file mode 100644 index b79a1a0..0000000 --- a/objects/oDynamicOccluder2/Step_0.gml +++ /dev/null @@ -1,2 +0,0 @@ -image_angle -= 2; -occluder.angle = image_angle; \ No newline at end of file diff --git a/objects/oDynamicOccluder2/oDynamicOccluder.yy b/objects/oDynamicOccluder2/oDynamicOccluder.yy deleted file mode 100644 index 3d478fd..0000000 --- a/objects/oDynamicOccluder2/oDynamicOccluder.yy +++ /dev/null @@ -1,37 +0,0 @@ -{ - "spriteId": { - "name": "sDynamicBlock", - "path": "sprites/sDynamicBlock/sDynamicBlock.yy", - }, - "solid": false, - "visible": true, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTest Objects", - "path": "folders/Example/rmTest Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oDynamicOccluder", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oDynamicOccluder2/oDynamicOccluder2.yy b/objects/oDynamicOccluder2/oDynamicOccluder2.yy deleted file mode 100644 index e384bda..0000000 --- a/objects/oDynamicOccluder2/oDynamicOccluder2.yy +++ /dev/null @@ -1,37 +0,0 @@ -{ - "spriteId": { - "name": "sDynamicBlock", - "path": "sprites/sDynamicBlock/sDynamicBlock.yy", - }, - "solid": false, - "visible": true, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTestWithGroups Objects", - "path": "folders/Example/rmTestWithGroups Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oDynamicOccluder2", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oLightDiscoooo2/Collision_oDynamicOccluder.gml b/objects/oLightDiscoooo2/Collision_oDynamicOccluder.gml deleted file mode 100644 index 24cab43..0000000 --- a/objects/oLightDiscoooo2/Collision_oDynamicOccluder.gml +++ /dev/null @@ -1,3 +0,0 @@ -x = xprevious; -y = yprevious; -direction = random(360); \ No newline at end of file diff --git a/objects/oLightDiscoooo2/Collision_oStaticOccluder.gml b/objects/oLightDiscoooo2/Collision_oStaticOccluder.gml deleted file mode 100644 index 24cab43..0000000 --- a/objects/oLightDiscoooo2/Collision_oStaticOccluder.gml +++ /dev/null @@ -1,3 +0,0 @@ -x = xprevious; -y = yprevious; -direction = random(360); \ No newline at end of file diff --git a/objects/oLightDiscoooo2/Collision_obj_par_occluder.gml b/objects/oLightDiscoooo2/Collision_obj_par_occluder.gml deleted file mode 100644 index 24cab43..0000000 --- a/objects/oLightDiscoooo2/Collision_obj_par_occluder.gml +++ /dev/null @@ -1,3 +0,0 @@ -x = xprevious; -y = yprevious; -direction = random(360); \ No newline at end of file diff --git a/objects/oLightDiscoooo2/Create_0.gml b/objects/oLightDiscoooo2/Create_0.gml deleted file mode 100644 index 186f04b..0000000 --- a/objects/oLightDiscoooo2/Create_0.gml +++ /dev/null @@ -1,7 +0,0 @@ -blendCycleSpeed = random_range(0.1, 1); -blendCycle = random(255); - -light = new BulbLight(oRenderer2.lighting, sLight512, 0, x, y); -light.penumbraSize = 30; -light.blend = make_colour_hsv(blendCycle, 230, 230); -light.bitmask = BulbMakeBitmask(true, false); \ No newline at end of file diff --git a/objects/oLightDiscoooo2/Step_0.gml b/objects/oLightDiscoooo2/Step_0.gml deleted file mode 100644 index b784f7e..0000000 --- a/objects/oLightDiscoooo2/Step_0.gml +++ /dev/null @@ -1,3 +0,0 @@ -blendCycle = (blendCycle + blendCycleSpeed) mod 255; - -light.blend = make_colour_hsv(blendCycle, 230, 230); \ No newline at end of file diff --git a/objects/oLightDiscoooo2/oLightDiscoooo.yy b/objects/oLightDiscoooo2/oLightDiscoooo.yy deleted file mode 100644 index c3b08a8..0000000 --- a/objects/oLightDiscoooo2/oLightDiscoooo.yy +++ /dev/null @@ -1,41 +0,0 @@ -{ - "spriteId": { - "name": "sLightMask", - "path": "sprites/sLightMask/sLightMask.yy", - }, - "solid": false, - "visible": true, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":1,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":4,"collisionObjectId":{"name":"oDynamicOccluder","path":"objects/oDynamicOccluder/oDynamicOccluder.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":4,"collisionObjectId":{"name":"oStaticOccluder","path":"objects/oStaticOccluder/oStaticOccluder.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTest Objects", - "path": "folders/Example/rmTest Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oLightDiscoooo", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oLightDiscoooo2/oLightDiscoooo2.yy b/objects/oLightDiscoooo2/oLightDiscoooo2.yy deleted file mode 100644 index fd392fd..0000000 --- a/objects/oLightDiscoooo2/oLightDiscoooo2.yy +++ /dev/null @@ -1,37 +0,0 @@ -{ - "spriteId": { - "name": "sLightMask", - "path": "sprites/sLightMask/sLightMask.yy", - }, - "solid": false, - "visible": true, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTestWithGroups Objects", - "path": "folders/Example/rmTestWithGroups Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oLightDiscoooo2", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oPlayer2/Create_0.gml b/objects/oPlayer2/Create_0.gml deleted file mode 100644 index a467287..0000000 --- a/objects/oPlayer2/Create_0.gml +++ /dev/null @@ -1,4 +0,0 @@ -light = new BulbLight(oRenderer2.lighting, sLightTorch, 0, x, y); -light.penumbraSize = 30; -light.yscale = 0.5; -light.blend = make_colour_rgb(255, 255, 100); \ No newline at end of file diff --git a/objects/oPlayer2/Step_0.gml b/objects/oPlayer2/Step_0.gml deleted file mode 100644 index eb24d34..0000000 --- a/objects/oPlayer2/Step_0.gml +++ /dev/null @@ -1,20 +0,0 @@ -//Player input -if (keyboard_check(vk_up )) || (keyboard_check(ord("W"))) y -= 5; -if (keyboard_check(vk_down )) || (keyboard_check(ord("S"))) y += 5; -if (keyboard_check(vk_left )) || (keyboard_check(ord("A"))) x -= 5; -if (keyboard_check(vk_right)) || (keyboard_check(ord("D"))) x += 5; - -//Update camera position -camera_set_view_pos(oRenderer2.camera, - round(x - 0.5*camera_get_view_width( oRenderer2.camera)), - round(y - 0.5*camera_get_view_height(oRenderer2.camera))); - -//Make sure the light tracks the player -light.x = x; -light.y = y; -light.angle = point_direction(x, y, mouse_x, mouse_y); - -light.bitmask = BulbMakeBitmask(false, true); - -//Allow the right mouse button to toggle the light -if (mouse_check_button_pressed(mb_right)) light.visible = !light.visible; \ No newline at end of file diff --git a/objects/oPlayer2/oPlayer.yy b/objects/oPlayer2/oPlayer.yy deleted file mode 100644 index dfdcb96..0000000 --- a/objects/oPlayer2/oPlayer.yy +++ /dev/null @@ -1,38 +0,0 @@ -{ - "spriteId": { - "name": "sPlayerMask", - "path": "sprites/sPlayerMask/sPlayerMask.yy", - }, - "solid": false, - "visible": true, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":2,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTest Objects", - "path": "folders/Example/rmTest Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oPlayer", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oPlayer2/oPlayer2.yy b/objects/oPlayer2/oPlayer2.yy deleted file mode 100644 index e7457e7..0000000 --- a/objects/oPlayer2/oPlayer2.yy +++ /dev/null @@ -1,37 +0,0 @@ -{ - "spriteId": { - "name": "sPlayerMask", - "path": "sprites/sPlayerMask/sPlayerMask.yy", - }, - "solid": false, - "visible": true, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTestWithGroups Objects", - "path": "folders/Example/rmTestWithGroups Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oPlayer2", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oRenderer2/Create_0.gml b/objects/oRenderer2/Create_0.gml deleted file mode 100644 index c03afb3..0000000 --- a/objects/oRenderer2/Create_0.gml +++ /dev/null @@ -1,13 +0,0 @@ -//Create a camera -view_enabled = true; -view_set_visible(0, true); -camera = camera_create_view(x - 640, y - 360, 1280, 720, 0, noone, 0, 0, 0, 0); -view_set_camera(0, camera); - -//Start the lighting system -lighting = new BulbRendererWithGroups(make_colour_rgb(50, 50, 80), BULB_MODE.SOFT_BM_ADD, true, 2); - -//Set up a vertex buffer for drawing the diffuse base texture for the walls -//This isn't strictly part of the lighting example -staticBlocks = new VertexCake(); -staticBlocks.Bake(oStaticOccluder, sStaticBlock, 0, true) \ No newline at end of file diff --git a/objects/oRenderer2/Draw_0.gml b/objects/oRenderer2/Draw_0.gml deleted file mode 100644 index 515df9f..0000000 --- a/objects/oRenderer2/Draw_0.gml +++ /dev/null @@ -1,2 +0,0 @@ -//Draw the walls as one big batch -staticBlocks.Draw(); \ No newline at end of file diff --git a/objects/oRenderer2/Draw_73.gml b/objects/oRenderer2/Draw_73.gml deleted file mode 100644 index 8e2aacb..0000000 --- a/objects/oRenderer2/Draw_73.gml +++ /dev/null @@ -1,2 +0,0 @@ -lighting.UpdateFromCamera(camera); -lighting.DrawOnCamera(camera); \ No newline at end of file diff --git a/objects/oRenderer2/Other_5.gml b/objects/oRenderer2/Other_5.gml deleted file mode 100644 index 854aa79..0000000 --- a/objects/oRenderer2/Other_5.gml +++ /dev/null @@ -1,9 +0,0 @@ -//Destroy the camera we set up -view_set_camera(0, noone); -camera_destroy(camera); - -//Destroy the walls vertex buffer -staticBlocks.Free(); - -//Destroy the lighting system (you still need to destroy each light instance!) -lighting.Free(); \ No newline at end of file diff --git a/objects/oRenderer2/Step_0.gml b/objects/oRenderer2/Step_0.gml deleted file mode 100644 index c53a90d..0000000 --- a/objects/oRenderer2/Step_0.gml +++ /dev/null @@ -1 +0,0 @@ -if (keyboard_check_pressed(vk_escape)) game_end(); \ No newline at end of file diff --git a/objects/oRenderer2/oRenderer.yy b/objects/oRenderer2/oRenderer.yy deleted file mode 100644 index 4347dbe..0000000 --- a/objects/oRenderer2/oRenderer.yy +++ /dev/null @@ -1,39 +0,0 @@ -{ - "spriteId": null, - "solid": false, - "visible": true, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 1, - "physicsGroup": 1, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":2,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":64,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":73,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":5,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "Objects", - "path": "folders/Example/Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oRenderer", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oRenderer2/oRenderer2.yy b/objects/oRenderer2/oRenderer2.yy deleted file mode 100644 index 56de852..0000000 --- a/objects/oRenderer2/oRenderer2.yy +++ /dev/null @@ -1,37 +0,0 @@ -{ - "spriteId": null, - "solid": false, - "visible": true, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 1, - "physicsGroup": 1, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":73,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - {"isDnD":false,"eventNum":5,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTestWithGroups Objects", - "path": "folders/Example/rmTestWithGroups Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oRenderer2", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oStaticOccluder2/Create_0.gml b/objects/oStaticOccluder2/Create_0.gml deleted file mode 100644 index 3cf6518..0000000 --- a/objects/oStaticOccluder2/Create_0.gml +++ /dev/null @@ -1,30 +0,0 @@ -occluder = new BulbStaticOccluder(oRenderer2.lighting); -occluder.x = x; -occluder.y = y; -occluder.xscale = image_xscale; -occluder.yscale = image_yscale; -occluder.angle = image_angle; - -var _l = -0.5*sprite_get_width(sprite_index); -var _t = -0.5*sprite_get_height(sprite_index); -var _r = 0.5*sprite_get_width(sprite_index); -var _b = 0.5*sprite_get_height(sprite_index); - -if ((image_angle != 0) || (image_xscale != 1) || (image_yscale != 1)) -{ - //If this instance has been rotated or stretched in the room editor, add every side as an occluder - //Use clockwise definitions! - occluder.AddEdge(_l, _t, _r, _t); //Top - occluder.AddEdge(_r, _t, _r, _b); //Right - occluder.AddEdge(_r, _b, _l, _b); //Bottom - occluder.AddEdge(_l, _b, _l, _t); //Left -} -else -{ - //If this instance is axis-aligned and non-stretched, only add shadow casting sides if they're external - //Use clockwise definitions! - if (!position_meeting(x, y - 32, oStaticOccluder)) occluder.AddEdge(_l, _t, _r, _t); //Top - if (!position_meeting(x + 32, y, oStaticOccluder)) occluder.AddEdge(_r, _t, _r, _b); //Right - if (!position_meeting(x, y + 32, oStaticOccluder)) occluder.AddEdge(_r, _b, _l, _b); //Bottom - if (!position_meeting(x - 32, y, oStaticOccluder)) occluder.AddEdge(_l, _b, _l, _t); //Left -} \ No newline at end of file diff --git a/objects/oStaticOccluder2/oStaticOccluder.yy b/objects/oStaticOccluder2/oStaticOccluder.yy deleted file mode 100644 index 921b129..0000000 --- a/objects/oStaticOccluder2/oStaticOccluder.yy +++ /dev/null @@ -1,36 +0,0 @@ -{ - "spriteId": { - "name": "sStaticBlock", - "path": "sprites/sStaticBlock/sStaticBlock.yy", - }, - "solid": false, - "visible": false, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTest Objects", - "path": "folders/Example/rmTest Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oStaticOccluder", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oStaticOccluder2/oStaticOccluder2.yy b/objects/oStaticOccluder2/oStaticOccluder2.yy deleted file mode 100644 index 942d3a3..0000000 --- a/objects/oStaticOccluder2/oStaticOccluder2.yy +++ /dev/null @@ -1,36 +0,0 @@ -{ - "spriteId": { - "name": "sStaticBlock", - "path": "sprites/sStaticBlock/sStaticBlock.yy", - }, - "solid": false, - "visible": false, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTestWithGroups Objects", - "path": "folders/Example/rmTestWithGroups Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oStaticOccluder2", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oStaticOccluderAlt2/Create_0.gml b/objects/oStaticOccluderAlt2/Create_0.gml deleted file mode 100644 index 08d6bf1..0000000 --- a/objects/oStaticOccluderAlt2/Create_0.gml +++ /dev/null @@ -1,31 +0,0 @@ -occluder = new BulbStaticOccluder(oRenderer2.lighting); -occluder.x = x; -occluder.y = y; -occluder.xscale = image_xscale; -occluder.yscale = image_yscale; -occluder.angle = image_angle; -occluder.bitmask = BulbMakeBitmask(true, false); - -var _l = -0.5*sprite_get_width(sprite_index); -var _t = -0.5*sprite_get_height(sprite_index); -var _r = 0.5*sprite_get_width(sprite_index); -var _b = 0.5*sprite_get_height(sprite_index); - -if ((image_angle != 0) || (image_xscale != 1) || (image_yscale != 1)) -{ - //If this instance has been rotated or stretched in the room editor, add every side as an occluder - //Use clockwise definitions! - occluder.AddEdge(_l, _t, _r, _t); //Top - occluder.AddEdge(_r, _t, _r, _b); //Right - occluder.AddEdge(_r, _b, _l, _b); //Bottom - occluder.AddEdge(_l, _b, _l, _t); //Left -} -else -{ - //If this instance is axis-aligned and non-stretched, only add shadow casting sides if they're external - //Use clockwise definitions! - if (!position_meeting(x, y - 32, oStaticOccluder)) occluder.AddEdge(_l, _t, _r, _t); //Top - if (!position_meeting(x + 32, y, oStaticOccluder)) occluder.AddEdge(_r, _t, _r, _b); //Right - if (!position_meeting(x, y + 32, oStaticOccluder)) occluder.AddEdge(_r, _b, _l, _b); //Bottom - if (!position_meeting(x - 32, y, oStaticOccluder)) occluder.AddEdge(_l, _b, _l, _t); //Left -} \ No newline at end of file diff --git a/objects/oStaticOccluderAlt2/oStaticOccluder.yy b/objects/oStaticOccluderAlt2/oStaticOccluder.yy deleted file mode 100644 index 921b129..0000000 --- a/objects/oStaticOccluderAlt2/oStaticOccluder.yy +++ /dev/null @@ -1,36 +0,0 @@ -{ - "spriteId": { - "name": "sStaticBlock", - "path": "sprites/sStaticBlock/sStaticBlock.yy", - }, - "solid": false, - "visible": false, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTest Objects", - "path": "folders/Example/rmTest Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oStaticOccluder", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oStaticOccluderAlt2/oStaticOccluder2.yy b/objects/oStaticOccluderAlt2/oStaticOccluder2.yy deleted file mode 100644 index 83a8386..0000000 --- a/objects/oStaticOccluderAlt2/oStaticOccluder2.yy +++ /dev/null @@ -1,36 +0,0 @@ -{ - "spriteId": { - "name": "sStaticBlock", - "path": "sprites/sStaticBlock/sStaticBlock.yy", - }, - "solid": false, - "visible": false, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTestMasked Objects", - "path": "folders/Example/rmTestMasked Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oStaticOccluder2", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/objects/oStaticOccluderAlt2/oStaticOccluderAlt2.yy b/objects/oStaticOccluderAlt2/oStaticOccluderAlt2.yy deleted file mode 100644 index a23791b..0000000 --- a/objects/oStaticOccluderAlt2/oStaticOccluderAlt2.yy +++ /dev/null @@ -1,36 +0,0 @@ -{ - "spriteId": { - "name": "sStaticBlock", - "path": "sprites/sStaticBlock/sStaticBlock.yy", - }, - "solid": false, - "visible": false, - "spriteMaskId": null, - "persistent": false, - "parentObjectId": null, - "physicsObject": false, - "physicsSensor": false, - "physicsShape": 0, - "physicsGroup": 0, - "physicsDensity": 0.5, - "physicsRestitution": 0.1, - "physicsLinearDamping": 0.1, - "physicsAngularDamping": 0.1, - "physicsFriction": 0.2, - "physicsStartAwake": true, - "physicsKinematic": false, - "physicsShapePoints": [], - "eventList": [ - {"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, - ], - "properties": [], - "overriddenProperties": [], - "parent": { - "name": "rmTestWithGroups Objects", - "path": "folders/Example/rmTestWithGroups Objects.yy", - }, - "resourceVersion": "1.0", - "name": "oStaticOccluderAlt2", - "tags": [], - "resourceType": "GMObject", -} \ No newline at end of file diff --git a/rooms/rmTestWithGroups/rmTestWithGroups.yy b/rooms/rmTestWithGroups/rmTestWithGroups.yy index ed68fb1..61e13b1 100644 --- a/rooms/rmTestWithGroups/rmTestWithGroups.yy +++ b/rooms/rmTestWithGroups/rmTestWithGroups.yy @@ -1,4 +1,7 @@ { + "resourceType": "GMRoom", + "resourceVersion": "1.0", + "name": "rmTestWithGroups", "isDnd": false, "volume": 1.0, "parentRoom": null, @@ -13,35 +16,15 @@ {"inherit":false,"visible":false,"xview":0,"yview":0,"wview":640,"hview":480,"xport":0,"yport":0,"wport":640,"hport":480,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,}, ], "layers": [ - {"instances":[ - {"properties":[],"isDnd":false,"objectId":{"name":"oRenderer2","path":"objects/oRenderer2/oRenderer2.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":32.0,"y":32.0,"resourceVersion":"1.0","name":"inst_5FDC8443","tags":[],"resourceType":"GMRInstance",}, - {"properties":[],"isDnd":false,"objectId":{"name":"oPlayer2","path":"objects/oPlayer2/oPlayer2.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":1847.0,"y":1780.0,"resourceVersion":"1.0","name":"inst_1C9E5E16","tags":[],"resourceType":"GMRInstance",}, - {"properties":[],"isDnd":false,"objectId":{"name":"oStaticOccluder2","path":"objects/oStaticOccluder2/oStaticOccluder2.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":7.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":2016.0,"y":1984.0,"resourceVersion":"1.0","name":"inst_418EC6F8","tags":[],"resourceType":"GMRInstance",}, - {"properties":[],"isDnd":false,"objectId":{"name":"oLightDiscoooo2","path":"objects/oLightDiscoooo2/oLightDiscoooo2.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":2112.0,"y":1824.0,"resourceVersion":"1.0","name":"inst_1C4082F0","tags":[],"resourceType":"GMRInstance",}, - {"properties":[],"isDnd":false,"objectId":{"name":"oDynamicOccluder2","path":"objects/oDynamicOccluder2/oDynamicOccluder2.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":3.0,"scaleY":3.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":2240.0,"y":1952.0,"resourceVersion":"1.0","name":"inst_13B9DA2E","tags":[],"resourceType":"GMRInstance",}, - {"properties":[],"isDnd":false,"objectId":{"name":"oStaticOccluderAlt2","path":"objects/oStaticOccluderAlt2/oStaticOccluderAlt2.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":9.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":2240.0,"y":1664.0,"resourceVersion":"1.0","name":"inst_56E193F","tags":[],"resourceType":"GMRInstance",}, - {"properties":[],"isDnd":false,"objectId":{"name":"oStaticOccluderAlt2","path":"objects/oStaticOccluderAlt2/oStaticOccluderAlt2.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":2240.0,"y":1728.0,"resourceVersion":"1.0","name":"inst_E68ED44","tags":[],"resourceType":"GMRInstance",}, - {"properties":[],"isDnd":false,"objectId":{"name":"oStaticOccluder2","path":"objects/oStaticOccluder2/oStaticOccluder2.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":2080.0,"y":1952.0,"resourceVersion":"1.0","name":"inst_6B93BBA4","tags":[],"resourceType":"GMRInstance",}, - {"properties":[],"isDnd":false,"objectId":{"name":"oDynamicOccluder2","path":"objects/oDynamicOccluder2/oDynamicOccluder2.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":3.0,"scaleY":3.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":2368.0,"y":1824.0,"resourceVersion":"1.0","name":"inst_3C324802","tags":[],"resourceType":"GMRInstance",}, - ],"visible":true,"depth":-99,"userdefinedDepth":true,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"Player_And_Renderer","tags":[],"resourceType":"GMRInstanceLayer",}, - {"instances":[],"visible":true,"depth":-199,"userdefinedDepth":true,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"Lights","tags":[],"resourceType":"GMRInstanceLayer",}, - {"instances":[],"visible":true,"depth":0,"userdefinedDepth":true,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"Occluders","tags":[],"resourceType":"GMRInstanceLayer",}, - {"spriteId":null,"colour":4293256677,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":15.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":2147483600,"userdefinedDepth":true,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"Background","tags":[],"resourceType":"GMRBackgroundLayer",}, + {"resourceType":"GMRInstanceLayer","resourceVersion":"1.0","name":"Player_And_Renderer","instances":[],"visible":true,"depth":-99,"userdefinedDepth":true,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritVisibility":true,"inheritSubLayers":true,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],}, + {"resourceType":"GMRInstanceLayer","resourceVersion":"1.0","name":"Lights","instances":[],"visible":true,"depth":-199,"userdefinedDepth":true,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritVisibility":true,"inheritSubLayers":true,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],}, + {"resourceType":"GMRInstanceLayer","resourceVersion":"1.0","name":"Occluders","instances":[],"visible":true,"depth":0,"userdefinedDepth":true,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritVisibility":true,"inheritSubLayers":true,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],}, + {"resourceType":"GMRBackgroundLayer","resourceVersion":"1.0","name":"Background","spriteId":null,"colour":4293256677,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":15.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":2147483600,"userdefinedDepth":true,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritVisibility":true,"inheritSubLayers":true,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],}, ], "inheritLayers": false, "creationCodeFile": "", "inheritCode": false, - "instanceCreationOrder": [ - {"name":"inst_5FDC8443","path":"rooms/rmTestWithGroups/rmTestWithGroups.yy",}, - {"name":"inst_1C9E5E16","path":"rooms/rmTestWithGroups/rmTestWithGroups.yy",}, - {"name":"inst_418EC6F8","path":"rooms/rmTestWithGroups/rmTestWithGroups.yy",}, - {"name":"inst_1C4082F0","path":"rooms/rmTestWithGroups/rmTestWithGroups.yy",}, - {"name":"inst_13B9DA2E","path":"rooms/rmTestWithGroups/rmTestWithGroups.yy",}, - {"name":"inst_56E193F","path":"rooms/rmTestWithGroups/rmTestWithGroups.yy",}, - {"name":"inst_E68ED44","path":"rooms/rmTestWithGroups/rmTestWithGroups.yy",}, - {"name":"inst_6B93BBA4","path":"rooms/rmTestWithGroups/rmTestWithGroups.yy",}, - {"name":"inst_3C324802","path":"rooms/rmTestWithGroups/rmTestWithGroups.yy",}, - ], + "instanceCreationOrder": [], "inheritCreationOrder": false, "sequenceId": null, "roomSettings": { @@ -67,8 +50,4 @@ "name": "Rooms", "path": "folders/Rooms.yy", }, - "resourceVersion": "1.0", - "name": "rmTestWithGroups", - "tags": [], - "resourceType": "GMRoom", } \ No newline at end of file diff --git a/scripts/BulbDynamicOccluder/BulbDynamicOccluder.gml b/scripts/BulbDynamicOccluder/BulbDynamicOccluder.gml index 732cd7b..0f1e83a 100644 --- a/scripts/BulbDynamicOccluder/BulbDynamicOccluder.gml +++ b/scripts/BulbDynamicOccluder/BulbDynamicOccluder.gml @@ -13,8 +13,6 @@ function BulbDynamicOccluder(_renderer) constructor vertexArray = []; - bitmask = BULB_DEFAULT_DYNAMIC_BITMASK; - __radius = 0; __destroyed = false; diff --git a/scripts/BulbLight/BulbLight.gml b/scripts/BulbLight/BulbLight.gml index 6b4ea3f..d784ed9 100644 --- a/scripts/BulbLight/BulbLight.gml +++ b/scripts/BulbLight/BulbLight.gml @@ -13,17 +13,13 @@ function BulbLight(_renderer, _sprite, _image, _x, _y) constructor xprevious = x; yprevious = y; - sprite = _sprite; - image = _image; - xscale = 1.0; - yscale = 1.0; - xscaleprevious = xscale; - yscaleprevious = yscale; - angle = 0.0; - blend = c_white; - alpha = 1.0; - - bitmask = BULB_DEFAULT_LIGHT_BITMASK; + sprite = _sprite; + image = _image; + xscale = 1.0; + yscale = 1.0; + angle = 0.0; + blend = c_white; + alpha = 1.0; penumbraSize = 0.0; diff --git a/scripts/BulbMakeBitmask/BulbMakeBitmask.gml b/scripts/BulbMakeBitmask/BulbMakeBitmask.gml deleted file mode 100644 index 120a9f6..0000000 --- a/scripts/BulbMakeBitmask/BulbMakeBitmask.gml +++ /dev/null @@ -1,18 +0,0 @@ -/// @param group1 -/// @param [group2] -/// @param [group3] -/// @param ... - -function BulbMakeBitmask() -{ - var _value = 0; - - var _i = 0; - repeat(argument_count) - { - if (argument[_i]) _value |= (1 << _i); - ++_i; - } - - return _value; -} \ No newline at end of file diff --git a/scripts/BulbMakeBitmask/BulbMakeBitmask.yy b/scripts/BulbMakeBitmask/BulbMakeBitmask.yy deleted file mode 100644 index 5fa3afa..0000000 --- a/scripts/BulbMakeBitmask/BulbMakeBitmask.yy +++ /dev/null @@ -1,12 +0,0 @@ -{ - "isDnD": false, - "isCompatibility": false, - "parent": { - "name": "Bulb", - "path": "folders/Bulb.yy", - }, - "resourceVersion": "1.0", - "name": "BulbMakeBitmask", - "tags": [], - "resourceType": "GMScript", -} \ No newline at end of file diff --git a/scripts/BulbRendererWithGroups/BulbRenderer.yy b/scripts/BulbRendererWithGroups/BulbRenderer.yy deleted file mode 100644 index 5fdcd1a..0000000 --- a/scripts/BulbRendererWithGroups/BulbRenderer.yy +++ /dev/null @@ -1,12 +0,0 @@ -{ - "isDnD": false, - "isCompatibility": false, - "parent": { - "name": "Bulb", - "path": "folders/Bulb.yy", - }, - "resourceVersion": "1.0", - "name": "BulbRenderer", - "tags": [], - "resourceType": "GMScript", -} \ No newline at end of file diff --git a/scripts/BulbRendererWithGroups/BulbRendererWithGroups.gml b/scripts/BulbRendererWithGroups/BulbRendererWithGroups.gml deleted file mode 100644 index 602b13e..0000000 --- a/scripts/BulbRendererWithGroups/BulbRendererWithGroups.gml +++ /dev/null @@ -1,1217 +0,0 @@ -/// @param ambientColour -/// @param mode -/// @param smooth -/// @param maxGroups - -function BulbRendererWithGroups(_ambientColour, _mode, _smooth, _maxGroups) constructor -{ - //Assign the ambient colour used for the darkest areas of the screen. This can be changed on the fly - ambientColor = _ambientColour; - - //The smoothing mode controls texture filtering both when accumulating lights and when drawing the resulting __surface - smooth = _smooth; - - mode = _mode; - - surfaceWidth = -1; - surfaceHeight = -1; - - //The highest mask index that can be specified - if ((_maxGroups <= 0) || (_maxGroups > 64)) __BulbError("Maximum mask index should be between 1 and 64 inclusive (got ", _maxGroups, ")"); - __maxGroups = _maxGroups; - - __groupArray = array_create(__maxGroups); - var _i = 0; - repeat(__maxGroups) - { - //Initialise variables used and updated in .__UpdateVertexBuffers() - var _groupStruct = { - staticVBuffer : undefined, //Vertex buffer describing the geometry of static occluder objects - dynamicVBuffer : undefined, //As above but for dynamic shadow occluders. This is updated every step - } - - __groupArray[@ _i] = _groupStruct; - - ++_i; - } - - __wipeVBuffer = undefined; //This vertex buffer is used to reset the z-buffer during accumulation of non-deferred lights - __surface = undefined; //Screen-space __surface for final accumulation of lights - - __staticOccludersArray = []; - __dynamicOccludersArray = []; - __lightsArray = []; - __sunlightArray = []; - __shadowOverlayArray = []; - __lightOverlayArray = []; - - __freed = false; - __oldMode = undefined; - - __clipEnabled = false; - __clipSurface = undefined; - __clipIsShadow = true; - __clipAlpha = 1.0; - __clipInvert = false; - __clipValueToAlpha = false; - - - - #region Public Methods - - static SetSurfaceDimensionsFromCamera = function(_camera) - { - var _projMatrix = camera_get_proj_mat(_camera); - var _width = round(abs(2/_projMatrix[0])); - var _height = round(abs(2/_projMatrix[5])); - - return SetSurfaceDimensions(_width, _height); - } - - static SetSurfaceDimensions = function(_width, _height) - { - surfaceWidth = _width; - surfaceHeight = _height; - - GetSurface(); - GetClippingSurface(); - } - - static SetClippingSurface = function(_clipIsShadow, _clipAlpha, _clipInvert = false, _hsvValueToAlpha = false) - { - __clipEnabled = true; - __clipIsShadow = _clipIsShadow; - __clipAlpha = _clipAlpha; - __clipInvert = _clipInvert; - __clipValueToAlpha = _hsvValueToAlpha; - } - - static RemoveClippingSurface = function() - { - __clipEnabled = false; - __FreeClipSurface(); - } - - static CopyClippingSurface = function(_surface) - { - gpu_set_blendmode_ext(bm_one, bm_zero); - surface_copy(GetClippingSurface(), 0, 0, _surface); - gpu_set_blendmode(bm_normal); - } - - static SetAmbientColor = function(_color) - { - ambientColor = _color; - } - - static GetAmbientColor = function() - { - return ambientColor; - } - - static UpdateFromCamera = function(_camera) - { - //Deploy PROPER MATHS in case the dev is using matrices - - var _viewMatrix = camera_get_view_mat(_camera); - var _projMatrix = camera_get_proj_mat(_camera); - - var _cameraX = -_viewMatrix[12]; - var _cameraY = -_viewMatrix[13]; - var _cameraViewWidth = round(abs(2/_projMatrix[0])); - var _cameraViewHeight = round(abs(2/_projMatrix[5])); - var _cameraLeft = _cameraX - _cameraViewWidth/2; - var _cameraTop = _cameraY - _cameraViewHeight/2; - - return Update(_cameraLeft, _cameraTop, _cameraViewWidth, _cameraViewHeight); - } - - static Update = function(_cameraL, _cameraT, _cameraW, _cameraH) - { - if (__freed) return undefined; - - if (surfaceWidth <= 0) surfaceWidth = _cameraW; - if (surfaceHeight <= 0) surfaceHeight = _cameraH; - - if (mode != __oldMode) - { - __oldMode = mode; - __FreeVertexBuffers(); - } - - var _cameraR = _cameraL + _cameraW; - var _cameraB = _cameraT + _cameraH; - var _cameraCX = _cameraL + 0.5*_cameraW; - var _cameraCY = _cameraT + 0.5*_cameraH; - - //Construct our wipe/static/dynamic vertex buffers - __UpdateVertexBuffers(_cameraL, _cameraT, _cameraR, _cameraB, _cameraW, _cameraH); - - //Create accumulating lighting __surface - surface_set_target(GetSurface()); - - //Record the current texture filter state, then set our new filter state - var _old_tex_filter = gpu_get_tex_filter(); - gpu_set_tex_filter(smooth); - - //Clear the __surface with the ambient colour - draw_clear(ambientColor); - - //If we're not forcing deferred rendering everywhere, update those lights - __AccumulateLights(_cameraL, _cameraT, _cameraR, _cameraB, _cameraCX, _cameraCY, _cameraW, _cameraH); - - if (__clipEnabled) __ApplyClippingSurface(); - - //Restore the old filter state - gpu_set_tex_filter(_old_tex_filter); - - surface_reset_target(); - } - - /// @param camera - /// @param [alpha] - static DrawOnCamera = function() - { - var _camera = argument[0]; - var _alpha = ((argument_count > 1) && (argument[1] != undefined))? argument[1] : undefined; - - var _viewMatrix = camera_get_view_mat(_camera); - var _projMatrix = camera_get_proj_mat(_camera); - - //Deploy PROPER MATHS in case the dev is using matrices - var _cameraX = -_viewMatrix[12]; - var _cameraY = -_viewMatrix[13]; - var _cameraViewWidth = round(abs(2/_projMatrix[0])); - var _cameraViewHeight = round(abs(2/_projMatrix[5])); - var _cameraLeft = _cameraX - _cameraViewWidth/2; - var _cameraTop = _cameraY - _cameraViewHeight/2; - - return Draw(_cameraLeft, _cameraTop, _cameraViewWidth, _cameraViewHeight, _alpha); - } - - /// @param x - /// @param y - /// @param [width] - /// @param [height] - /// @param [alpha] - static Draw = function() - { - if (__freed) return undefined; - - var _x = argument[0]; - var _y = argument[1]; - var _width = ((argument_count > 2) && (argument[2] != undefined))? argument[2] : surfaceWidth; - var _height = ((argument_count > 3) && (argument[3] != undefined))? argument[3] : surfaceHeight; - var _alpha = ((argument_count > 4) && (argument[4] != undefined))? argument[4] : 1.0; - - if ((__surface != undefined) && surface_exists(__surface)) - { - //Record the current texture filter state, then set our new filter state - var _old_tex_filter = gpu_get_tex_filter(); - gpu_set_tex_filter(smooth); - - gpu_set_colorwriteenable(true, true, true, false); - - if (_alpha == 1.0) - { - //Don't use the shader if we don't have to! - gpu_set_blendmode_ext(bm_dest_color, bm_zero); - draw_surface_stretched(__surface, _x, _y, _width, _height); - } - else - { - gpu_set_blendmode_ext(bm_dest_color, bm_inv_src_alpha); - shader_set(__shdBulbFinalRender); - draw_surface_stretched_ext(__surface, _x, _y, _width, _height, c_white, _alpha); - shader_reset(); - } - - gpu_set_blendmode(bm_normal); - gpu_set_colorwriteenable(true, true, true, true); - - //Restore the old filter state - gpu_set_tex_filter(_old_tex_filter); - } - } - - static GetSurface = function() - { - if (__freed) return undefined; - if ((surfaceWidth <= 0) || (surfaceHeight <= 0)) return undefined; - - if ((__surface != undefined) && ((surface_get_width(__surface) != surfaceWidth) || (surface_get_height(__surface) != surfaceHeight))) - { - surface_free(__surface); - __surface = undefined; - } - - if ((__surface == undefined) || !surface_exists(__surface)) - { - __surface = surface_create(surfaceWidth, surfaceHeight); - - surface_set_target(__surface); - draw_clear_alpha(c_black, 1.0); - surface_reset_target(); - } - - return __surface; - } - - static GetClippingSurface = function() - { - if (__freed || !__clipEnabled) return undefined; - if ((surfaceWidth <= 0) || (surfaceHeight <= 0)) return undefined; - - if ((__clipSurface != undefined) && ((surface_get_width(__clipSurface) != surfaceWidth) || (surface_get_height(__clipSurface) != surfaceHeight))) - { - surface_free(__clipSurface); - __clipSurface = undefined; - } - - if ((__clipSurface == undefined) || !surface_exists(__clipSurface)) - { - __clipSurface = surface_create(surfaceWidth, surfaceHeight); - - surface_set_target(__clipSurface); - - if (__clipInvert) - { - draw_clear_alpha(c_black, 0.0); - } - else - { - draw_clear_alpha(c_white, 1.0); - } - - surface_reset_target(); - } - - return __clipSurface; - } - - static RefreshStaticOccluders = function() - { - if (__freed) return undefined; - - var _i = 0; - repeat(__maxGroups) - { - with(__groupArray[_i]) - { - if (staticVBuffer != undefined) - { - vertex_delete_buffer(staticVBuffer); - staticVBuffer = undefined; - } - } - - ++_i; - } - } - - static Free = function() - { - __FreeVertexBuffers(); - __FreeSurface(); - __FreeClipSurface(); - - __freed = true; - } - - #endregion - - static __FreeVertexBuffers = function() - { - if (__wipeVBuffer != undefined) - { - vertex_delete_buffer(__wipeVBuffer); - __wipeVBuffer = undefined; - } - - if (__staticVBuffer != undefined) - { - vertex_delete_buffer(__staticVBuffer); - __staticVBuffer = undefined; - } - - if (__dynamicVBuffer != undefined) - { - vertex_delete_buffer(__dynamicVBuffer); - __dynamicVBuffer = undefined; - } - } - - static __FreeSurface = function() - { - if ((__surface != undefined) && surface_exists(__surface)) - { - surface_free(__surface); - __surface = undefined; - } - } - - static __FreeClipSurface = function() - { - if ((__clipSurface != undefined) && surface_exists(__clipSurface)) - { - surface_free(__clipSurface); - __clipSurface = undefined; - } - } - - #region Update vertex buffers - - static __UpdateVertexBuffers = function(_cameraL, _cameraT, _cameraR, _cameraB, _cameraW, _cameraH) - { - if (__freed) return undefined; - - ///////////Discover camera variables - var _cameraExpL = _cameraL - BULB_DYNAMIC_OCCLUDER_RANGE; - var _cameraExpT = _cameraT - BULB_DYNAMIC_OCCLUDER_RANGE; - var _cameraExpR = _cameraR + BULB_DYNAMIC_OCCLUDER_RANGE; - var _cameraExpB = _cameraB + BULB_DYNAMIC_OCCLUDER_RANGE; - - //One-time construction of a triangle to wipe the z-buffer - //Using textures (rather than untextured) saves on shader_set() overhead... likely a trade-off depending on the GPU - if (__wipeVBuffer == undefined) - { - __wipeVBuffer = vertex_create_buffer(); - vertex_begin(__wipeVBuffer, global.__bulb_format_3d_colour); - - vertex_position_3d(__wipeVBuffer, 0, 0, 0); vertex_colour(__wipeVBuffer, c_black, 1); - vertex_position_3d(__wipeVBuffer, 2*_cameraW, 0, 0); vertex_colour(__wipeVBuffer, c_black, 1); - vertex_position_3d(__wipeVBuffer, 0, 2*_cameraH, 0); vertex_colour(__wipeVBuffer, c_black, 1); - - vertex_end(__wipeVBuffer); - vertex_freeze(__wipeVBuffer); - } - - var _groupArray = __groupArray; - var _staticArray = __staticOccludersArray; - var _staticCount = array_length(_staticArray); - var _dynamicArray = __dynamicOccludersArray; - var _dynamicCount = array_length(_dynamicArray); - - //Pre-parse the static occluder array to remove any dead weak references - var _i = 0; - repeat(_staticCount) - { - var _weak = _staticArray[_i]; - if (!weak_ref_alive(_weak) || _weak.ref.__destroyed) - { - array_delete(_staticArray, _i, 1); - } - else - { - ++_i; - } - } - - //Pre-parse the dynamic occluder array to remove any dead weak references - var _i = 0; - repeat(_dynamicCount) - { - var _weak = _dynamicArray[_i]; - if (!weak_ref_alive(_weak) || _weak.ref.__destroyed) - { - array_delete(_dynamicArray, _i, 1); - } - else - { - ++_i; - } - } - - //Build our vertex buffers per group depending on our rendering mode - if (mode == BULB_MODE.SOFT_BM_ADD) - { - var _j = 0; - repeat(__maxGroups) - { - var _bit = 1 << _j; - with(_groupArray[_j]) - { - //One-time construction of the static occluder geometry - if (staticVBuffer == undefined) - { - //Create a new vertex buffer - staticVBuffer = vertex_create_buffer(); - var _staticVBuffer = staticVBuffer; - vertex_begin(_staticVBuffer, global.__bulb_format_3d_normal); - - //Iterate over the static occluders and add them to this group as necessary - var _i = 0; - repeat(_staticCount) - { - with(_staticArray[_i].ref) - { - if ((bitmask & _bit) > 0) __BulbAddOcclusionSoft(_staticVBuffer); - } - - ++_i; - } - - vertex_end(_staticVBuffer); - - //Freeze this buffer for speed boosts later on (though only if we have vertices in this buffer) - if (vertex_get_number(_staticVBuffer) > 0) vertex_freeze(_staticVBuffer); - } - - - - //Refresh the dynamic occluder geometry - if (dynamicVBuffer == undefined) dynamicVBuffer = vertex_create_buffer(); - var _dynamicVBuffer = dynamicVBuffer; - vertex_begin(_dynamicVBuffer, global.__bulb_format_3d_normal); - - //Iterate over the dynamic occluders and add them to this group as necessary - var _i = 0; - repeat(_dynamicCount) - { - with(_dynamicArray[_i].ref) - { - if (((bitmask & _bit) > 0) && __IsOnScreen(_cameraExpL, _cameraExpT, _cameraExpR, _cameraExpB)) - { - __BulbAddOcclusionSoft(_dynamicVBuffer); - } - } - - ++_i; - } - - vertex_end(_dynamicVBuffer); - } - - ++_j; - } - } - else - { - var _j = 0; - repeat(__maxGroups) - { - var _bit = 1 << _j; - with(_groupArray[_j]) - { - //One-time construction of the static occluder geometry - if (staticVBuffer == undefined) - { - //Create a new vertex buffer - staticVBuffer = vertex_create_buffer(); - var _staticVBuffer = staticVBuffer; - vertex_begin(_staticVBuffer, global.__bulb_format_3d_colour); - - //Iterate over the static occluders and add them to this group as necessary - var _i = 0; - repeat(_staticCount) - { - with(_staticArray[_i].ref) - { - if ((bitmask & _bit) > 0) __BulbAddOcclusionHard(_staticVBuffer); - } - - ++_i; - } - - vertex_end(_staticVBuffer); - - //Freeze this buffer for speed boosts later on (though only if we have vertices in this buffer) - if (vertex_get_number(_staticVBuffer) > 0) vertex_freeze(_staticVBuffer); - } - - //Refresh the dynamic occluder geometry - if (dynamicVBuffer == undefined) dynamicVBuffer = vertex_create_buffer(); - var _dynamicVBuffer = dynamicVBuffer; - vertex_begin(_dynamicVBuffer, global.__bulb_format_3d_colour); - - //Iterate over the dynamic occluders and add them to this group as necessary - var _i = 0; - repeat(_dynamicCount) - { - with(_dynamicArray[_i].ref) - { - if (((bitmask & _bit) > 0) && __IsOnScreen(_cameraExpL, _cameraExpT, _cameraExpR, _cameraExpB)) - { - __BulbAddOcclusionHard(_dynamicVBuffer); - } - } - - ++_i; - } - - vertex_end(_dynamicVBuffer); - } - - ++_j; - } - } - } - - #endregion - - #region Accumulate lights - - static __AccumulateLights = function(_cameraL, _cameraT, _cameraR, _cameraB, _cameraCX, _cameraCY, _cameraW, _cameraH) - { - if (__freed) return undefined; - - #region Linear algebra - - //var _view_matrix = matrix_build_lookat(_cameraW/2, _cameraH/2, -16000, _cameraW/2, _cameraH/2, 0, 0, 1, 0); - - //var _view_matrix = [ 1, 0, 0, 0, // [ 1, 0, 0, 0, - // 0, 1, 0, 0, // 0, 1, 0, 0, - // 0, 0, 1, 0, // 0, 0, 1, 0, - // -_cameraW/2, -_cameraH/2, 16000, 1 ]; // -_cameraW/2, -_cameraH/2, -camera_z, 1] - - //var _projMatrix = matrix_build_projection_ortho(_cameraW, -_cameraH, 1, 32000); - - //var _projMatrix = [2/_cameraW, 0, 0, 0, // [ 2/_cameraW, 0, 0, 0, - // 0, 2/_cameraH, 0, 0, // 0, 2/_cameraH, 0, 0, - // 0, 0, 1/(32000-1), 0, // 0, 0, 1/(z_far-z_near), 0, - // 0, 0, -1/(32000-1), 1 ]; // 0, 0, -z_near/(z_far-z_near), 1]; - - //var _vp_matrix = matrix_multiply(_new_view, _new_proj); - - //var _vp_matrix = [2/_cameraW, 0, 0, 0, // [ 2/_cameraW, 0, 0, 0, - // 0, 2/_cameraH, 0, 0, // 0, -2/_cameraH, 0, 0, - // 0, 0, 1/31999, 0, // 0, 0, 1/(z_far-z_near), 0, - // -1, 1, 15999/31999, 1 ]; // -1, 1, (-camera_z - z_near)/(z_far-z_near), 1]; - - #endregion - - //Ultimately, we can use the following projection matrix - if (__BULB_FLIP_CAMERA_Y) - { - //DirectX platforms want the Y-axis flipped - var _vp_matrix = [2/_cameraW, 0, 0, 0, - 0, -2/_cameraH, 0, 0, - 0, 0, 0, 0, - -1, 1, 1, 1]; - } - else - { - var _vp_matrix = [2/_cameraW, 0, 0, 0, - 0, 2/_cameraH, 0, 0, - 0, 0, 0, 0, - -1, -1, 1, 1]; - } - - //We set the view matrix to identity to allow us to use our custom projection matrix - matrix_set(matrix_view, [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]); - matrix_set(matrix_projection, _vp_matrix); - - //If culling is switched on, shadows will only be cast from the rear faces of occluders - //This requires careful object placement as not to create weird graphical glitches - gpu_set_cullmode(((mode == BULB_MODE.HARD_BM_ADD_SELFLIGHTING) || (mode == BULB_MODE.HARD_BM_MAX_SELFLIGHTING))? cull_counterclockwise : cull_noculling); - - ///////////Iterate over all non-deferred lights... - if (mode == BULB_MODE.SOFT_BM_ADD) - { - __AccumulateSoftLights(_cameraL, _cameraT, _cameraR, _cameraB, _cameraCX, _cameraCY, _cameraW, _cameraH, _vp_matrix); - } - else - { - __AccumulateHardLights(_cameraL, _cameraT, _cameraR, _cameraB, _cameraCX, _cameraCY, _cameraW, _cameraH, _vp_matrix); - } - - //Reset culling so we can draw sprites normally - gpu_set_cullmode(cull_noculling); - - - - //Now draw shadow overlay sprites, if we have any - var _size = array_length(__shadowOverlayArray); - if (_size > 0) - { - if (BULB_SHADOW_OVERLAY_HSV_VALUE_TO_ALPHA) - { - shader_set(__shdBulbHSVValueToAlpha); - } - else - { - //Leverage the fog system to force the colour of the sprites we draw (alpha channel passes through) - shader_reset(); - gpu_set_fog(true, ambientColor, 0, 0); - } - - //Don't touch the alpha channel - //TODO - We may need to adjust the alpha channel for use with sharing occlusion values - gpu_set_colorwriteenable(true, true, true, false); - - var _ambientColor = ambientColor; - var _i = 0; - repeat(_size) - { - var _weak = __shadowOverlayArray[_i]; - if (!weak_ref_alive(_weak) || _weak.ref.__destroyed) - { - array_delete(__shadowOverlayArray, _i, 1); - } - else - { - with(_weak.ref) - { - if (visible) - { - __CheckSpriteDimensions(); - - //If this light is active, do some drawing - if (__IsOnScreen(_cameraL, _cameraT, _cameraR, _cameraB)) - { - //We send the ambient colour over as well even though we have fogging on - //This allow us to colour the sprite when using the __shdBulbHSVValueToAlpha shader - draw_sprite_ext(sprite, image, x - _cameraL, y - _cameraT, xscale, yscale, angle, _ambientColor, alpha); - } - } - } - - ++_i; - } - } - - if (BULB_SHADOW_OVERLAY_HSV_VALUE_TO_ALPHA) - { - //Don't use the value->alpha shader carry on - shader_reset(); - } - else - { - //We're already using the default GM shader, though let's reset the fog value - gpu_set_fog(false, c_fuchsia, 0, 0); - } - } - else - { - //If we're not drawing any shadow overlays, reset what shader we're using - shader_reset(); - } - - - - //Finally, draw light overlay sprites too - //We use the overarching blend mode for the renderer - if ((mode == BULB_MODE.HARD_BM_MAX) || (mode == BULB_MODE.HARD_BM_MAX_SELFLIGHTING)) - { - gpu_set_blendmode(bm_max); - } - else - { - gpu_set_blendmode(bm_add); - } - - //Don't touch the alpha channel though - gpu_set_colorwriteenable(true, true, true, false); - - var _i = 0; - repeat(array_length(__lightOverlayArray)) - { - var _weak = __lightOverlayArray[_i]; - if (!weak_ref_alive(_weak) || _weak.ref.__destroyed) - { - array_delete(__lightOverlayArray, _i, 1); - } - else - { - with(_weak.ref) - { - if (visible) - { - __CheckSpriteDimensions(); - - //If this light is active, do some drawing - if (__IsOnScreen(_cameraL, _cameraT, _cameraR, _cameraB)) - { - draw_sprite_ext(sprite, image, x - _cameraL, y - _cameraT, xscale, yscale, angle, blend, alpha); - } - } - } - - ++_i; - } - } - - - - //Restore default behaviour - gpu_set_colorwriteenable(true, true, true, true); - gpu_set_blendmode(bm_normal); - } - - #endregion - - #region Accumulate soft lights - - static __AccumulateSoftLights = function(_cameraL, _cameraT, _cameraR, _cameraB, _cameraCX, _cameraCY, _cameraW, _cameraH, _vp_matrix) - { - if (__freed) return undefined; - - var _wipeVBuffer = __wipeVBuffer; - var _groupArray = __groupArray; - var _groupCount = __maxGroups; - - //Calculate some transform coefficients - var _cameraInvW = 2/_cameraW; - var _cameraInvH = 2/_cameraH; - if (__BULB_FLIP_CAMERA_Y) _cameraInvH = -_cameraInvH; - - var _cameraTransformedX = _cameraCX*_cameraInvW; - var _cameraTransformedY = _cameraCY*_cameraInvH; - - //Pre-build a custom projection matrix - //[8] [9] [10] are set per light - var _projMatrix = [ _cameraInvW, 0, 0, 0, - 0, _cameraInvH, 0, 0, - undefined, undefined, undefined, -1, - -_cameraTransformedX, -_cameraTransformedY, 0, 1]; - - // xOut = (x - z*(camX - lightX) - camX) / camW - // yOut = (y - z*(camY - lightY) - camY) / camH - // zOut = 0 - - var _i = 0; - repeat(array_length(__lightsArray)) - { - var _weak = __lightsArray[_i]; - if (!weak_ref_alive(_weak) || _weak.ref.__destroyed) - { - array_delete(__lightsArray, _i, 1); - } - else - { - with(_weak.ref) - { - if (visible) - { - __CheckSpriteDimensions(); - - //If this light is active, do some drawing - if (__IsOnScreen(_cameraL, _cameraT, _cameraR, _cameraB)) - { - if (castShadows) - { - gpu_set_colorwriteenable(false, false, false, true); - - //Clear alpha channel - gpu_set_blendmode(bm_subtract); - - if (__BULB_PARTIAL_CLEAR) - { - draw_sprite_ext(sprite, image, - x - _cameraL, y - _cameraT, - xscale, yscale, angle, - c_black, 1); - } - else - { - vertex_submit(_wipeVBuffer, pr_trianglelist, -1); - } - - //Render shadows - shader_set(__shdBulbSoftShadows); - gpu_set_blendmode(bm_add); - _projMatrix[@ 8] = x; - _projMatrix[@ 9] = y; - _projMatrix[@ 10] = penumbraSize; - matrix_set(matrix_projection, _projMatrix); - - var _j = 0; - repeat(_groupCount) - { - if ((bitmask & (1 << _j)) > 0) - { - with(_groupArray[_j]) - { - vertex_submit(staticVBuffer, pr_trianglelist, -1); - vertex_submit(dynamicVBuffer, pr_trianglelist, -1); - } - } - - ++_j; - } - - //Draw light sprite - shader_reset(); - matrix_set(matrix_projection, _vp_matrix); - - if (alpha < 1.0) - { - //If this light is fading out, adjust the destination alpha channel - //TODO - Do this earlier during the wipe phase and before shadow casting - gpu_set_blendmode_ext(bm_src_alpha, bm_one); - draw_sprite_ext(sprite, image, - x - _cameraL, y - _cameraT, - xscale, yscale, angle, - blend, 1.0 - alpha); - } - - gpu_set_colorwriteenable(true, true, true, false); - gpu_set_blendmode_ext(bm_inv_dest_alpha, bm_one); - - draw_sprite_ext(sprite, image, - x - _cameraL, y - _cameraT, - xscale, yscale, angle, - blend, alpha); - } - else - { - gpu_set_blendmode(bm_add); - draw_sprite_ext(sprite, image, - x - _cameraL, y - _cameraT, - xscale, yscale, angle, - blend, alpha); - } - } - } - } - - ++_i; - } - } - - var _aspectRatio = _cameraW/_cameraH; - var _i = 0; - repeat(array_length(__sunlightArray)) - { - var _weak = __sunlightArray[_i]; - if (!weak_ref_alive(_weak) || _weak.ref.__destroyed) - { - array_delete(__sunlightArray, _i, 1); - } - else - { - with(_weak.ref) - { - if (visible) - { - //Clear alpha channel - gpu_set_colorwriteenable(false, false, false, true); - gpu_set_blendmode(bm_subtract); - vertex_submit(_wipeVBuffer, pr_trianglelist, -1); - - //Render shadows - shader_set(__shdBulbSoftShadowsSunlight); - gpu_set_blendmode(bm_add); - _projMatrix[@ 8] = -__BULB_SUNLIGHT_SCALE*dcos(angle); - _projMatrix[@ 9] = -__BULB_SUNLIGHT_SCALE*dsin(angle); - _projMatrix[@ 10] = __BULB_SOFT_SUNLIGHT_PENUMBRA_SCALE*penumbraSize; - _projMatrix[@ 11] = _aspectRatio; - matrix_set(matrix_projection, _projMatrix); - - var _j = 0; - repeat(_groupCount) - { - if ((bitmask & (1 << _j)) > 0) - { - with(_groupArray[_j]) - { - vertex_submit(staticVBuffer, pr_trianglelist, -1); - vertex_submit(dynamicVBuffer, pr_trianglelist, -1); - } - } - - ++_j; - } - - //Draw light sprite - shader_reset(); - matrix_set(matrix_projection, _vp_matrix); - - if (alpha < 1.0) - { - //If this light is fading out, adjust the destination alpha channel - //TODO - Do this earlier during the wipe phase and before shadow casting - gpu_set_blendmode_ext(bm_src_alpha, bm_one); - draw_sprite_ext(__sprBulbPixel, 0, 0, 0, _cameraW, _cameraH, 0, blend, 1-alpha); - } - - gpu_set_colorwriteenable(true, true, true, false); - gpu_set_blendmode_ext(bm_inv_dest_alpha, bm_one); - draw_sprite_ext(__sprBulbPixel, 0, 0, 0, _cameraW, _cameraH, 0, blend, alpha); - } - } - - ++_i; - } - } - - gpu_set_blendmode(bm_normal); - } - - #endregion - - #region Accumulate hard lights - - static __AccumulateHardLights = function(_cameraL, _cameraT, _cameraR, _cameraB, _cameraCX, _cameraCY, _cameraW, _cameraH, _vp_matrix) - { - if (__freed) return undefined; - - var _wipeVBuffer = __wipeVBuffer; - var _groupArray = __groupArray; - var _groupCount = __maxGroups; - - //Calculate some transform coefficients - var _cameraInvW = 2/_cameraW; - var _cameraInvH = 2/_cameraH; - if (__BULB_FLIP_CAMERA_Y) _cameraInvH = -_cameraInvH; - - var _cameraTransformedX = _cameraCX*_cameraInvW; - var _cameraTransformedY = _cameraCY*_cameraInvH; - - //Pre-build a custom projection matrix - //[8] [9] are set per light - var _projMatrix = [ _cameraInvW, 0, 0, 0, - 0, _cameraInvH, 0, 0, - undefined, undefined, 0, -1, - -_cameraTransformedX, -_cameraTransformedY, 0, 1]; - - // xOut = (x - z*(camX - lightX) - camX) / camW - // yOut = (y - z*(camY - lightY) - camY) / camH - // zOut = 0 - - gpu_set_ztestenable(true); - gpu_set_zwriteenable(true); - - if ((mode == BULB_MODE.HARD_BM_MAX) || (mode == BULB_MODE.HARD_BM_MAX_SELFLIGHTING)) - { - gpu_set_blendmode(bm_max); - var _resetShader = __shdBulbPremultiplyAlpha; - } - else - { - gpu_set_blendmode(bm_add); - var _resetShader = __shdBulbPassThrough; - } - - shader_set(_resetShader); - matrix_set(matrix_projection, _vp_matrix); - - var _i = 0; - repeat(array_length(__lightsArray)) - { - var _weak = __lightsArray[_i]; - if (!weak_ref_alive(_weak) || _weak.ref.__destroyed) - { - array_delete(__lightsArray, _i, 1); - } - else - { - with(_weak.ref) - { - if (visible) - { - __CheckSpriteDimensions(); - - //If this light is active, do some drawing - if (__IsOnScreen(_cameraL, _cameraT, _cameraR, _cameraB)) - { - if (castShadows) - { - //Draw shadow stencil - gpu_set_zfunc(cmpfunc_always); - gpu_set_colorwriteenable(false, false, false, false); - - //Reset zbuffer - if (__BULB_PARTIAL_CLEAR) - { - draw_sprite_ext(sprite, image, - x - _cameraL, y - _cameraT, - xscale, yscale, angle, - c_black, 1); - shader_set(__shdBulbHardShadows); - } - else - { - shader_set(__shdBulbHardShadows); - vertex_submit(_wipeVBuffer, pr_trianglelist, -1); - } - - //Render shadows - _projMatrix[@ 8] = _cameraTransformedX - x*_cameraInvW; - _projMatrix[@ 9] = _cameraTransformedY - y*_cameraInvH; - matrix_set(matrix_projection, _projMatrix); - - var _j = 0; - repeat(_groupCount) - { - if ((bitmask & (1 << _j)) > 0) - { - with(_groupArray[_j]) - { - vertex_submit(staticVBuffer, pr_trianglelist, -1); - vertex_submit(dynamicVBuffer, pr_trianglelist, -1); - } - } - - ++_j; - } - - //Draw light sprite - shader_set(_resetShader); - gpu_set_zfunc(cmpfunc_lessequal); - gpu_set_colorwriteenable(true, true, true, false); - matrix_set(matrix_projection, _vp_matrix); - - draw_sprite_ext(sprite, image, - x - _cameraL, y - _cameraT, - xscale, yscale, angle, - blend, alpha); - } - else - { - gpu_set_zfunc(cmpfunc_always); - draw_sprite_ext(sprite, image, - x - _cameraL, y - _cameraT, - xscale, yscale, angle, - blend, alpha); - } - } - } - } - - ++_i; - } - } - - var _aspectRatio = _cameraW/_cameraH; - var _i = 0; - repeat(array_length(__sunlightArray)) - { - var _weak = __sunlightArray[_i]; - if (!weak_ref_alive(_weak) || _weak.ref.__destroyed) - { - array_delete(__sunlightArray, _i, 1); - } - else - { - with(_weak.ref) - { - if (visible) - { - //Draw shadow stencil - gpu_set_zfunc(cmpfunc_always); - gpu_set_colorwriteenable(false, false, false, false); - - //Reset zbuffer - shader_set(__shdBulbHardShadows); - vertex_submit(_wipeVBuffer, pr_trianglelist, -1); - - //Render shadows - _projMatrix[@ 8] = -__BULB_SUNLIGHT_SCALE*dcos(angle); - _projMatrix[@ 9] = -__BULB_SUNLIGHT_SCALE*dsin(angle)*_aspectRatio; - matrix_set(matrix_projection, _projMatrix); - - var _j = 0; - repeat(_groupCount) - { - if ((bitmask & (1 << _j)) > 0) - { - with(_groupArray[_j]) - { - vertex_submit(staticVBuffer, pr_trianglelist, -1); - vertex_submit(dynamicVBuffer, pr_trianglelist, -1); - } - } - - ++_j; - } - - //Draw fullscreen light sprite - shader_set(_resetShader); - gpu_set_zfunc(cmpfunc_lessequal); - gpu_set_colorwriteenable(true, true, true, false); - matrix_set(matrix_projection, _vp_matrix); - - draw_sprite_ext(__sprBulbPixel, 0, 0, 0, _cameraW, _cameraH, 0, blend, alpha); - } - } - - ++_i; - } - } - - gpu_set_blendmode(bm_normal); - gpu_set_ztestenable(false); - gpu_set_zwriteenable(false); - } - - static __FreeVertexBuffers = function() - { - if (__wipeVBuffer != undefined) - { - vertex_delete_buffer(__wipeVBuffer); - __wipeVBuffer = undefined; - } - - var _i = 0; - repeat(__maxGroups) - { - with(__groupArray[_i]) - { - if (staticVBuffer != undefined) - { - vertex_delete_buffer(staticVBuffer); - staticVBuffer = undefined; - } - - if (dynamicVBuffer != undefined) - { - vertex_delete_buffer(dynamicVBuffer); - dynamicVBuffer = undefined; - } - } - - ++_i; - } - } - - static __FreeSurface = function() - { - if ((__surface != undefined) && surface_exists(__surface)) - { - surface_free(__surface); - __surface = undefined; - } - } - - #endregion - - #region Clip Surface - - static __ApplyClippingSurface = function() - { - if (__freed || !__clipEnabled) return undefined; - - var _clipSurface = GetClippingSurface(); - if (_clipSurface != undefined) - { - if (!__clipInvert) //Intended to be (!__clipInvert) - { - //Use an inverse alpha so that we paint visible areas onto the clip surface - //Inverted mode should use GameMaker's standard alpha blending - //...this makes sense if you think about it, trust me - gpu_set_blendmode_ext(bm_inv_src_alpha, bm_src_alpha); - } - - gpu_set_colorwriteenable(true, true, true, false); - - if (__clipValueToAlpha) - { - //Apply the HSV value->alpha conversion shader if so desired - shader_set(__shdBulbHSVValueToAlpha); - draw_surface_ext(_clipSurface, 0, 0, 1, 1, 0, __clipIsShadow? ambientColor : c_white, __clipAlpha); - shader_reset(); - } - else - { - draw_surface_ext(_clipSurface, 0, 0, 1, 1, 0, __clipIsShadow? ambientColor : c_white, __clipAlpha); - } - - //Reset GPU state - gpu_set_blendmode(bm_normal); - gpu_set_colorwriteenable(true, true, true, true); - } - } - - #endregion -} \ No newline at end of file diff --git a/scripts/BulbRendererWithGroups/BulbRendererWithGroups.yy b/scripts/BulbRendererWithGroups/BulbRendererWithGroups.yy deleted file mode 100644 index 893577f..0000000 --- a/scripts/BulbRendererWithGroups/BulbRendererWithGroups.yy +++ /dev/null @@ -1,11 +0,0 @@ -{ - "resourceType": "GMScript", - "resourceVersion": "1.0", - "name": "BulbRendererWithGroups", - "isDnD": false, - "isCompatibility": false, - "parent": { - "name": "Bulb", - "path": "folders/Bulb.yy", - }, -} \ No newline at end of file diff --git a/scripts/BulbStaticOccluder/BulbStaticOccluder.gml b/scripts/BulbStaticOccluder/BulbStaticOccluder.gml index cb6ab18..aa698ee 100644 --- a/scripts/BulbStaticOccluder/BulbStaticOccluder.gml +++ b/scripts/BulbStaticOccluder/BulbStaticOccluder.gml @@ -11,8 +11,6 @@ function BulbStaticOccluder(_renderer) constructor vertexArray = []; - bitmask = BULB_DEFAULT_STATIC_BITMASK; - __destroyed = false; static Destroy = function() diff --git a/scripts/BulbSunlight/BulbSunlight.gml b/scripts/BulbSunlight/BulbSunlight.gml index de4aea1..ec786df 100644 --- a/scripts/BulbSunlight/BulbSunlight.gml +++ b/scripts/BulbSunlight/BulbSunlight.gml @@ -9,8 +9,6 @@ function BulbSunlight(_renderer, _angle) constructor blend = c_white; alpha = 1.0; - bitmask = BULB_DEFAULT_LIGHT_BITMASK; - penumbraSize = 0.0; __oldSprite = undefined; diff --git a/scripts/__BulbConfig/__BulbConfig.gml b/scripts/__BulbConfig/__BulbConfig.gml index 50ea421..3cfcce9 100644 --- a/scripts/__BulbConfig/__BulbConfig.gml +++ b/scripts/__BulbConfig/__BulbConfig.gml @@ -2,13 +2,6 @@ //Increase this number if you have large dynamic occluders and are experiencing pop-in #macro BULB_DYNAMIC_OCCLUDER_RANGE 100 -//Default group bitmasks to use for each type of constructor -//N.B. Group bitmasks will only be considered when rendering using BulbRendererWithGroups() -//0xFFFFFFFFFFFFFFFF will put a light/occluder in every possible group -#macro BULB_DEFAULT_LIGHT_BITMASK 0xFFFFFFFFFFFFFFFF -#macro BULB_DEFAULT_STATIC_BITMASK 0xFFFFFFFFFFFFFFFF -#macro BULB_DEFAULT_DYNAMIC_BITMASK 0xFFFFFFFFFFFFFFFF - //Controls how shadow overlays (created with the BulbShadowOverlay() constructor) are drawn //The default value is , where the HSV value (calculated as max(r,g,b)) is converted into an alpha value //This is analogous to a lighting sprite, only when using as a shadow overlay sprite, the effect is subtractive From d1f595b5b836586d09108144eba47e2db15ed474 Mon Sep 17 00:00:00 2001 From: Juju Adams Date: Sat, 9 Dec 2023 12:56:05 +0000 Subject: [PATCH 2/2] 21.0.0 --- README.md | 2 +- options/windows/options_windows.yy | 2 +- scripts/__BulbSystem/__BulbSystem.gml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a53f118..2a27162 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

-

Bulb 20.5.0

+

Bulb 21.0.0

2D lighting and shadows for GameMaker 2022 LTS

diff --git a/options/windows/options_windows.yy b/options/windows/options_windows.yy index ee0f84b..392a8f5 100644 --- a/options/windows/options_windows.yy +++ b/options/windows/options_windows.yy @@ -4,7 +4,7 @@ "name": "Windows", "option_windows_display_name": "Bulb", "option_windows_executable_name": "${project_name}", - "option_windows_version": "20.5.0.0", + "option_windows_version": "21.0.0.0", "option_windows_company_info": "Juju Adams", "option_windows_product_info": "Bulb", "option_windows_copyright_info": "Juju Adams (c) 2023", diff --git a/scripts/__BulbSystem/__BulbSystem.gml b/scripts/__BulbSystem/__BulbSystem.gml index b1b2b03..b06132e 100644 --- a/scripts/__BulbSystem/__BulbSystem.gml +++ b/scripts/__BulbSystem/__BulbSystem.gml @@ -1,5 +1,5 @@ -#macro __BULB_VERSION "20.5.0" -#macro __BULB_DATE "2023-11-14" +#macro __BULB_VERSION "21.0.0" +#macro __BULB_DATE "2023-12-09" #macro __BULB_ZFAR 1 __BulbTrace("Welcome to Bulb by Juju Adams! This is version " + __BULB_VERSION + ", " + __BULB_DATE);