Giter Club home page Giter Club logo

collage's Introduction

TabularElf

๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š ๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š๐Ÿ“š ๐Ÿ“œ๐Ÿ“œ๐Ÿ“œ๐Ÿ“œ๐Ÿ“œ๐Ÿ“œ๐Ÿ“œ๐Ÿ“œ
Lexicon
Localization Library
Collage
Texture Page Builder/Manager
function_execute
Execute Functions/Methods with infinite arguments
Sonus
Advanced Audio System
Canvas
Surface Caching System
Convert ds_grid/map/list to struct/array equivalents and vice versa
Self-explanatory
Slice
Layer Wrapper
Lens
Camera Wrapper
array_2d
Brings back 2D arrays
Architect
Build Script Manager for GameMaker
SimThreads
Green Thread implementation
current_step
Accurrate frame counter
Gravatar-For-GameMaker
Gravatar Integration in GameMaker
Stickers
Vertex buffer-based decal solution for GameMaker 2022 LTS
Multiclient
Launching multiple clients directly from the IDE!

TabularElf's GitHub stats

About me

I'm TabularElf, an experienced programmer who mainly uses GameMaker.
I'm from Australia, and I love cats!

Programming Journey

I began my programming journey back when I was just 12 years old, and I got my very first laptop. Up to that point in my life, I had been using computers prior and always been fascinated in how computers worked, but never really understood them. As well as slightly intrigued in how games worked. I began by learning the basics of batch and visual basics on Windows 7. Mainly making small utilities from swapping your mouse buttons around for left-handed people to hiding entire files and folders. I didn't really expand my skillset up until I started playing games like Half-Life 2, Garry's Mod, Portal and Minecraft. At that point, I really wanted to make my own 2D infinite sandbox game. So I picked up GameMaker 8, which turned out to be slowly my most favourite game engine. It was never truly the fastest, and it lacked a lot of features that other game engines had. But it was really easy to just sit down and make something work. Over the past 10 years, I've been spending my time finetuning my skills in GameMaker, and slowly picking up other programming languages along the way.

Hobbies

  • Photography

  • Video editing

  • Music editing

  • Photo editing

  • Web Development

  • General Programming

  • Streaming

  • Art

I am referred to as

Preferred

  • TabularElf

  • Tab

  • Elf

  • Tabby

  • Tabitha

  • Tabby the Cat

  • Tablets

  • TubularElf

  • Table Elf

  • Duck Tab

  • TaBoolean

  • TabTab

Misc

  • TibularOlf

  • TubularRolf

  • TybularRofl

  • TabularAlf

  • Alf

  • Spectabular

  • Tablerone

  • Tablertwo

  • Tablermorethentwocuzicantcounthigher

  • Ular

  • Lare

  • Bula

  • Abu

  • 2 Spaces

  • Tabarna

  • Tabanana

  • Tarbonara

  • TabarnacularElph

  • TarbacularElf

  • Table Shelf

  • Taboo

  • TabularShelf

  • Tabularity

  • StabularElf

collage's People

Contributors

tabularelf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

collage's Issues

Keep subimages together property

Allows specifying that a sprite and its sub images remain on the same texture page no matter what. (Ensuring that they get thrown onto another texture page for convience sake). If they cannot fit on even a completely blank texture page, they'll get discarded.

Freezing Collage instances

This'll add in a mode for Collage instances to be frozen, when there's no more images needed to be added to it. This will perform a possible number of things.

-Stores the image data in a more linear fashion (as opposed to passing and accessing struct data for specific UV info/texture pages, as scoping into other structs is slow, but for Collage it's super easy to work with for dynamic texture pages)
-Converts the surface + buffer into a sprite to let GameMaker handle it (no needing to check the surface)
-Disallow saving/loading, packing images, and anything else that involves surfaces + buffers (technically some aspects of this is still possible, but I'm disallowing it mainly due to concerns on conversion to and from surfaces/sprites.)

__CollageImageUVsClass width and height arguments follow-through to right and bottom UV values.

The arguments are inconsistent between what's being called and what's being processed. _uvX and _uvY are correct, but _uvW and _uvH point to _right and _bottomt inside method.

var _uvs = new __CollageImageUVsClass(_texPage, owner.__texPageCount, _uvX, _uvY, _uvW, _uvH, _drawX, _drawY, _ogW, _ogH, _xOffset, _yOffset);

This seems to have fixed it:
function __CollageImageUVsClass(_texPageStruct, _texPageNum, _left, _top, _width, _height, _trimLeft = 0, _trimTop = 0, _ogW = 0, _ogH = 0, /*_cropRotate = 0,*/ _xOffset = 0, _yOffset = 0) constructor { left = _left; right = _left + _width; top = _top; bottom = _top + _height; trimLeft = _trimLeft; trimTop = _trimTop; //trimRight = _trimRight; //trimBottom = _trimBottom; //rotate = _cropRotate; normLeft = (_left / _texPageStruct.__width); normRight = ((_left + _width) / _texPageStruct.__width); normTop = (_top / _texPageStruct.__height); normBottom = ((_top + _height) / _texPageStruct.__height); normWidth = normLeft+normRight; normHeight = normTop+normBottom; originalWidth = _ogW; originalHeight = _ogH; xPos = _xOffset-_trimLeft; yPos = _yOffset-_trimTop; texturePageNum = _texPageNum; texturePageStruct = _texPageStruct; }

External tileset support

Currently there's no way for GameMaker to create external tilesets. With a shader and a custom vertex buffer, I could implement a custom tileset system that feels almost as native as GameMakers...

UV compatibility mode

Self explanatory. Right now Collage bakes the x and y into width and height, amongst other things that GameMaker does not do. Additionally, I'd like to fetch the results from an array instead of only a struct.

Proper implementation of "3D images".

GameMaker allows sprites to be put onto their own texture page. While Collage can easily add support for this, I just haven't added the entire implementation for it as of yet. (It's currently half done.)

Premultiply Alpha Property

Mimic Premultiply Alpha in the Sprite settings, to allow premultiplying images before being drawn onto Collage.

Asynchronous Collage Building

Collage only supports synchronous building. Which is plenty fast as is, but still would be great for Collage to be able to spread its load across several of frames.

Asynchronous sprite loading support

This is particularly important for HTML5 and any images that are loaded from the web. Right now Collage does not work with sprites that were loaded on the web.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.