Giter Club home page Giter Club logo

collage's Issues

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...

Premultiply Alpha Property

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

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.

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.

Docs copy/paste error

Not the most important ticket, but I still wanted to point it out, my inner Monk demands this...

image

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.)

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; }

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.

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.

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.