Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
aa38c6e
Updates libpng16 for windows
megamarc Dec 22, 2019
9351f91
Tilengine 2.4.2 - CRT effect restored
megamarc Dec 22, 2019
d095656
Deprecates TLN_SetAnimationDelay() to no_op, as each frame has its ow…
megamarc Feb 13, 2020
b206967
Fixes testmouse
megamarc Mar 2, 2020
c93fe9a
Merge branch 'master' of https://github.com/megamarc/Tilengine
megamarc Mar 2, 2020
4456237
Adds CHANGELOG.md as a basis to publish revisions in website
megamarc Apr 10, 2020
c8baee5
WIP 2.5.0: image-based tilesets and object layers
megamarc Apr 11, 2020
ab1f0a9
WIP 2.5.0 - implementation complete, requires full test
megamarc Apr 11, 2020
1e76464
WIP release 2.5.0 - debug tests complete
megamarc Apr 14, 2020
9df1fa5
WIP Release 2.5.0
megamarc Apr 15, 2020
eb560b3
Updates .travys.yml to tryautomatic upload of build to ftp server, ch…
megamarc Apr 15, 2020
fd9501e
* Fixes /samples/Makefile LIBPATH pointing to correct lib path /lib/l…
megamarc Apr 16, 2020
075556e
Updates Makefile and install to use library folder path based on CPU …
megamarc Apr 16, 2020
7a1f4bb
* Removes auto FTP upload for travis CI, ftp support is officially br…
megamarc Apr 16, 2020
8a7c02e
Small fixes for Doxygen documentation
megamarc Apr 16, 2020
1622559
WIP Release 2.6.0 - Enhanced asset loader
megamarc Apr 21, 2020
1356d1e
Release 2.6.0
megamarc Apr 21, 2020
d14e0b9
Updates 2.6.0 changelog, minor fixes to documentation and makefile
megamarc Apr 22, 2020
92dfee1
Sprite.c - fixed odd word
Apr 23, 2020
4cb000f
Merge pull request #66 from pancakevirus/patch-1
megamarc Apr 23, 2020
ccb0d93
Release 2.7.0
megamarc Apr 26, 2020
242364e
Merge branch 'master' of https://github.com/megamarc/Tilengine
megamarc Apr 26, 2020
6ccd603
* Updates documentation sections
megamarc Apr 26, 2020
8375f91
Removes external dependencies required to build and run.
megamarc Apr 28, 2020
10b5876
Removes SDL2.dll
megamarc Apr 28, 2020
e2c4f5c
Removes appveyor and coverity links
megamarc Apr 28, 2020
1a2e6f4
Release 2.7.5 - enhanced asset package
megamarc Apr 30, 2020
8822159
Release 2.7.6
megamarc Apr 30, 2020
944cc8a
Updares README.md with setup build instructions for windows
megamarc May 1, 2020
e08b366
Release 2.8.0 - revamped animation system
megamarc May 1, 2020
f712634
Fixes building with gcc
megamarc May 1, 2020
9175f97
Fixes fullscreen window with borderless desktop instead of exclusive
megamarc May 2, 2020
1254045
Updates changelog and doxygen docs
megamarc May 4, 2020
a4b7359
Merge branch 'master' of https://github.com/megamarc/Tilengine
megamarc May 4, 2020
e81920d
Release 2.8.1
megamarc May 8, 2020
2198e03
Release 2.8.2 - Enhanced TMX compatibility
megamarc May 9, 2020
23264c0
Release 2.8.3
megamarc May 11, 2020
d2d02d2
Release 2.8.4
megamarc May 12, 2020
6ee8ef5
Updates documentation sources, adds quick guide
megamarc May 14, 2020
9d4a897
Minor documentation fixes
megamarc May 16, 2020
83e7f01
Updates main README.md
megamarc May 16, 2020
90acef0
Reworked doxygen documentation structure, added "Guides" index and pe…
megamarc May 17, 2020
88b7c58
WIP doxygen documntation
megamarc May 17, 2020
7c2ee7d
WIP documentation
megamarc May 20, 2020
68ee0ef
* Adds FLAG_MASKED, deprecates TLN_EnableSpriteMasking
megamarc May 22, 2020
8dbe597
Reimplement TLN_SetAnimationDelay() for single frame
mechakotik Jul 17, 2020
4c733b9
Merge pull request #73 from MyCats/master
megamarc Jul 19, 2020
e7db034
Tilengine 2.8.5
megamarc Aug 7, 2020
a03baf4
WIP docs
megamarc Aug 8, 2020
e0e3a2c
Windows build: sets compilation mode to C++ (was plain C) to ensure e…
megamarc Oct 17, 2020
56c80fa
Updates "bindings" section with Rust and LuaJIT (libretro core)
megamarc Dec 13, 2020
e8d497b
Language Bindings - Add RingTilengine
MahmoudFayed Jan 5, 2021
d8bdb1a
Merge pull request #77 from MahmoudFayed/master
megamarc Jan 5, 2021
780ffe6
WIP release 2.9.0
megamarc Feb 6, 2021
5dda08d
WIP release 2.9.0
megamarc Feb 6, 2021
9f81959
* Updates Forest sample and assets to use World feature added in rele…
megamarc Mar 13, 2021
9d1dd70
Release 2.9.0
megamarc Mar 15, 2021
db7b692
Removes unused file
megamarc Mar 15, 2021
c3f89d4
Fixes Color definition (typedef union) on Linux
megamarc Mar 15, 2021
524145c
Linux: adds missing headers
megamarc Mar 15, 2021
b8ef670
Fixes linux build in World.c
megamarc Mar 16, 2021
d3b620a
Fixes sample in README.md
megamarc Mar 19, 2021
412f4ad
WIP Release 2.9.1
megamarc Mar 20, 2021
830205e
Adds documentation for new 2.9.1 functions
megamarc Mar 23, 2021
3ead7c9
Keeps separate tests under /test folder
megamarc Jul 21, 2021
8faf776
Tilengine 2.9.2
megamarc Sep 10, 2021
9a1bd23
Tilengine 2.9.3
megamarc Sep 30, 2021
5c90290
Tilengine 2.9.4 - enhanced layer query
megamarc Nov 23, 2021
7c0dea6
Updates makefile for new "querysample"
megamarc Nov 23, 2021
1c8e294
Updates doxygen documentation for 2.9.4
megamarc Nov 23, 2021
8d9a3aa
Remove unimportant warnings
lxxxxl Jan 9, 2022
fe8cda3
Merge pull request #90 from lxxxxl/master
megamarc Jan 9, 2022
11527fb
Tilengine 2.9.5
Mar 29, 2022
6ca2116
* Updates README.md with new CsTilenginePure binding
megamarc Apr 9, 2022
effe3a7
bugfix 2.9.6
megamarc Apr 9, 2022
3ba08d8
Added description for TLN_ERR_REF_LIST
vonhoff Apr 19, 2022
2ac7355
Merge pull request #94 from vonhoff/master
megamarc Jun 18, 2022
537a91e
Tilengine 2.9.7
megamarc Aug 8, 2022
420a681
Merge branch 'master' of https://github.com/megamarc/Tilengine
megamarc Aug 8, 2022
8dfe37a
feat: cmake build
lxxxxl Aug 14, 2022
94a979c
Merge branch 'megamarc:master' into master
lxxxxl Aug 15, 2022
bd25e9c
Merge pull request #96 from lxxxxl/master
megamarc Aug 18, 2022
93268b8
WIP new CRT effect
Sep 18, 2022
b0d1d3c
Tilengine 2.10.0 - New CRT emulation completed
Sep 29, 2022
b8dda2f
Tilengine 2.10.0 - linux build
megamarc Sep 29, 2022
ba9abab
Tilengine 2.10.1
Sep 30, 2022
57d8784
Tilengine 2.11.0
Oct 2, 2022
f4a7f0e
Tilengine 2.11.1
Oct 16, 2022
c7450e9
Add Nim bindings
exelotl Oct 19, 2022
9f28383
Merge pull request #100 from exelotl/patch-1
megamarc Oct 19, 2022
eed3a00
Tilengine 2.11.2
Oct 20, 2022
ad8c743
Fix some links in readme
exelotl Oct 21, 2022
94edbd8
Merge pull request #104 from exelotl/patch-2
megamarc Oct 21, 2022
09fce72
WIP rework of pipelining for 32-bit intermediate buffer
Oct 23, 2022
f392a56
WIP rework of pipelining for 32-bit intermediate buffer
Oct 24, 2022
3171d1a
Tilengine 2.11.3 - fixes heterogeneous multi-tile issue
Oct 25, 2022
001d717
Merge branch 'master' of https://github.com/megamarc/Tilengine
Oct 25, 2022
0c22b22
Tilengine 2.11.3 - fixes multi-tileset and multi-palette per layer issue
Oct 26, 2022
a1e3212
WIP Tile rotation 90º support
Oct 28, 2022
849b800
WIP tile & sprite rotation
Oct 30, 2022
56efc61
WIP parttal implementation of FLAG_ROTATE in sprites
Oct 30, 2022
7650738
Fixes ambiguous definition of Layer.SelectBlitter and Blitters.Select…
Oct 30, 2022
75613a4
Merge branch 'master' into tile_rotation
Oct 30, 2022
8c4ac21
Tilengine 2.12
Oct 31, 2022
8db60e7
Tilengine 2.13 - Implements optional per-tile palette like in classic…
Nov 2, 2022
92467c6
Tilengine 2.13.1
Nov 3, 2022
867e3ae
Tilengine 2.13.2
Nov 11, 2022
90cd391
Fixes return value for Layer & Sprite position getters when there's a…
Nov 12, 2022
dc7c5ae
Update install instructions for MacOS
IsaacBreen Nov 17, 2022
9abb4e0
Update install.md
IsaacBreen Nov 17, 2022
53c81e3
Update README.md and introduction.md
IsaacBreen Nov 17, 2022
10bf7de
`./sudo install` -> `sudo ./install`
IsaacBreen Nov 17, 2022
068a07f
Merge pull request #106 from IsaacBreen/patch-1
megamarc Nov 17, 2022
c9dfcc7
Minor fixes
Jan 10, 2023
6dc3ad9
Merge branch 'master' of https://github.com/megamarc/Tilengine
Jan 10, 2023
4f7d885
Adds V-Tilengine binding link for V language
Jan 28, 2023
e1105eb
Mosaic management
Jan 28, 2023
7aa8867
WIP Tilengine 2.14
Jan 29, 2023
847b698
WIP Tilengine 2.14
Jan 30, 2023
4f20852
WIP Tilengine 2.14 (windowing)
Jan 30, 2023
7b88b21
WIP Tilengine 2.14
Jan 31, 2023
e9b3e7a
Add gotilengine binding link for Go language
thechampagne Jan 31, 2023
8df6d18
WIP Tilengine 2.14
Feb 1, 2023
b1be877
Merge pull request #110 from thechampagne/master
megamarc Feb 6, 2023
f19fedc
Tilengine 2.14 public release
Feb 9, 2023
27241b3
Merge branch 'master' of https://github.com/megamarc/Tilengine
Feb 9, 2023
307af55
Update to release 2.14
Feb 10, 2023
40202b1
Minor style upgrades from html5 branch
Feb 14, 2023
b925444
Add zigtilengine binding link for Zig language
thechampagne Feb 19, 2023
4cbe66c
Merge pull request #111 from thechampagne/master
megamarc Feb 21, 2023
3d0b97e
Add dtilengine binding link for D language
thechampagne Feb 21, 2023
5227628
Merge branch 'master' of https://github.com/megamarc/Tilengine
Feb 25, 2023
d13e22c
Merge pull request #112 from thechampagne/master
megamarc Feb 25, 2023
f4991a8
Merge branch 'master' of https://github.com/megamarc/Tilengine
Feb 25, 2023
aa4fbb5
Add odintilengine binding link for Odin language
thechampagne Feb 25, 2023
5d19e68
Tilengine 2.14.1
Feb 25, 2023
4a924fe
Tilengine 2.15
Apr 22, 2023
d07c087
Tilengine 2.15.1
Apr 23, 2023
89d1895
Tilengine 2.15.2
Aug 25, 2023
22ac89e
Tilengine 2.15.2 update
Aug 29, 2023
87993c4
add Odin to Bindings in README
brunodeangelis Feb 26, 2024
6a22c89
Merge pull request #118 from brunodeangelis/patch-1
megamarc May 3, 2024
b8704a3
Merge branch 'master' into master
thechampagne May 3, 2024
eab1387
Merge pull request #115 from thechampagne/master
megamarc May 3, 2024
d4f8737
Tilengine 2.15.3
megamarc Sep 29, 2024
4fb0ca7
Fixed out of bounds when accessing variable
daltomi Jan 2, 2026
063f828
Merge pull request #136 from daltomi/fix-out-of-bounds
megamarc Mar 7, 2026
6faccb1
Tilengine 2.15.4
megamarc Jul 7, 2026
c1edbb3
Merge branch 'master' of https://github.com/megamarc/Tilengine
megamarc Jul 7, 2026
9ff3610
Merge branch 'master' into libretro
humbertodias Aug 16, 2026
763e8f3
Add macOS arm64 support to src/Makefile
humbertodias Aug 16, 2026
ff7e0f2
ignore macos .dylib
humbertodias Aug 16, 2026
8830051
ignore src/lua/liblua.a
humbertodias Aug 16, 2026
5013ba1
ignore .luajit-src
humbertodias Aug 16, 2026
6502ea5
Build a real libretro core on macOS with LuaJIT
humbertodias Aug 16, 2026
eefc2a6
fix: use LuaJIT and bundle runtime library for Linux
humbertodias Aug 16, 2026
eba05bf
Link LuaJIT statically into the libretro core
humbertodias Aug 16, 2026
9f135a2
Tilengine 2.15.4
megamarc Aug 21, 2026
fc9e77d
Improves built-in CRT effect
megamarc Aug 22, 2026
0c86707
Samples: removes build.bat, use standard portable Makefile instead.
megamarc Aug 22, 2026
90b4e52
Moves doxygen comments from Tilengine.c and LoadFile.c to Tilengine.h
megamarc Aug 22, 2026
21bfc2f
Moves doxygen comments from Window.c to Tilengine.h
megamarc Aug 22, 2026
22ce49f
Moves doxygen comments from Spriteset.c and LoadSpriteset.c to Tileng…
megamarc Aug 22, 2026
f4bb87f
Moves doxygen comments from Tilemap.c and LoadTilemap.c to Tilengine.h
megamarc Aug 22, 2026
0404d2f
Moves doxygen comments from Palette.c and LoadPalette.c to Tilengine.h
megamarc Aug 22, 2026
f29492f
Moves doxygen comments from Bitmap.c and LoadBitmap.c to Tilengine.h
megamarc Aug 22, 2026
7b3de5f
Moves doxygen comments from ObjectList.c to Tilengine.h
megamarc Aug 22, 2026
7ec1e61
Moves doxygen comments from Tileset.c and LoadTileset.c to Tilengine.h
megamarc Aug 22, 2026
1a1066a
Moves doxygen comments from Animation.c, Sequence.c, SequencePack.c, …
megamarc Aug 22, 2026
dcf54f4
Moves doxygen comments from Layer.c to Tilengine.h
megamarc Aug 22, 2026
cef0682
Moves doxygen comments from Sprite.c and Animation.c to Tilengine.h
megamarc Aug 22, 2026
4c3efac
Upgrades doxygen file, corrects some comments
megamarc Aug 22, 2026
e8e935f
WIP emscripten/html5 target
megamarc Aug 23, 2026
5b8b790
WIP emscripten/html5 target
megamarc Aug 23, 2026
3c9675e
Merge branch 'master' into libretro
humbertodias Aug 24, 2026
99921f4
Adds Makefile_emcc to build with emscripten
megamarc Aug 24, 2026
3dcbb2a
Window.c
megamarc Aug 26, 2026
a33e881
Samples
megamarc Aug 26, 2026
95be659
Builder
megamarc Aug 26, 2026
2762edf
Updates prism.js to properly highlight C files
megamarc Aug 26, 2026
9c84edb
Bumps version to 2.16, there are some minor breaking changes with 2.15
megamarc Aug 26, 2026
79895a4
Samples:
megamarc Aug 26, 2026
2b70eff
Merge remote-tracking branch 'upstream/master' into libretro
humbertodias Sep 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,34 @@ Win32_Debug/
Win32_Release/
x64_Debug/
x64_Release/
build/
*.pyc
*.exe
*.dll
*.htm
*.so
*.dylib
*.a
upload.sh

docs/
lib/
web/
docs/screens/
samples/assets/mslug/
samples/assets/sunny_land/
samples/c/*.dll
samples/csharp/*.dll
samples/SDL2
samples/wasm
src/sdl
src/libpng/

# deploy packages
*.zip
*.gz
*.bz2
.luajit-src/

# Visual Studio specific
Debug/
Expand Down
213 changes: 213 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
# Tilengine changelog

## [2.8.4] - 12/5/2020
- Deprecates old TLN_SetLayer that required passing a NULL tileset, and replaces with new TLN_SetLayerTilemap that just requires the tilemap
- TLN_SetLoadPath() not needed anymore: chain loading of resources being loaded from subdirectories (.tsx -> .tmx -> png)
- TLN_DrawFrame(): frame parameter can be always 0, in that case it auto-increments internally. Application doesn't need to keep track of frames just to make the animation engine work.
- Updates many samples to use current features, making them easier to follow

## [2.8.3] - 11/5/2020
- Changes tileset animation method: discards internal bitmap copy and backup of pixel data, and replaces by an intermediate LUT of indexes
- Removes TLN_CopyTile(), not needed anymore
- Tilemaps created procedurally are visible by default

## [2.8.2] - 9/5/2020
- Fixes bug where tileset animations weren't correctly played on layer index other than 0
- Enhanced TMX compatibility:
- handles "visible" property on layers and objects
- correctly loads "Rectangle" objects in addition to "Tile" ones
- TLN_ObjectInfo returns standard TMX properties: "name", "type" (integer) and "visible"

## [2.8.0] - 3/5/2020
- Revamped animation engine. Slotted animations used only by palette (color cycle)
- Tileset sequences: a frame and the target tile can be the same
- Enhanced .tmx loader: more layers and shared tileset (.tsx) on several layers
- Updated ResourcePacker loader to collision-free hashes (get packer get at https://megamarc.itch.io/resourcepacker)
- Forest sample adds optional parameter to specify resource pack file and encryption password
- Window: fullscreen windows are desktop borderless instead of exclusive

## [2.7.0] - 26/4/2020
- Adds sprite linked list order: TLN_SetFirstSprite() and TLN_SetNextSprite()
- Adds sprite masking: TLN_EnableSpriteMasking() and TLN_SetSpritesMaskRegion()
- Removes parameter "count" in TLN_CreateSpriteSequence(), now gets detected from sprite names
- CRT effect: when disabled always uses nearest-neighbor interpolation
- Fixes compiler-induced optimization bugs in built-in window
- Samples: removes usage of old sqx files for sprite animation and replaces with TLN_CreateSpriteAnimation() (shooter, supermarioclone, forest)
- Fixes broken loading of txt-based spritesheets in 2.6.0

## [2.6.0] - 22/4/2020
- Supports .json array for spritesheet loader, compatible with Aseprite, Texturepacker, Piskel...
- Supports loading of 24/32 bpp pixel data on the fly. Note that bitmaps must have less than 255 unique colors

## [2.5.0] - 15/4/2020
- Adds support for Tiled editor image-based tilesets and objet layers
- ObjectList: Removes old TLN_AddSpriteToList(), TLN_GetObjectsInReigion() and TLN_Object struct
- ObjectList: Renames old TLN_AddObjectToList() to TLN_AddTileObjectToList()
- ObjectList: Adds TLN_GetListNumObjects(), TLN_GetListObject() and TLN_ObjectInfo struct
- Tileset: adds new function TLN_CreateImageTileset() and TLN_TileImage struct
- Fixes TLN_GetLayerTile() crashing when passing negative x
- Adds TLN_ERR_REF_LIST error value to signal bad TLN_ObjectList reference
- Updates sample "Forest" to showcase new image-based tileset and object list features

## [2.4.2] - 22/12/2019
- Fixes broken crt effect in x64, due to mismatched bool for uint8_t causing misalignment of indexed data. Updates windows binaries

## [2.4.1] - 19/11/2019
- Uses explicit casts on all functions returning generic void*, allows for more strict C++ compile-time checks but it's still full pure C compliant
- Sibling objects are destroyed by explicit TLN_DestroyXXX() destructor instead of improperly calling generic DeleteBaseObject() on siblings, causing memory leaks.
- Other fixes related to issue #53 (proper context destroy, xml parser fix...)
- TLN_SetLayerBitmap() checks for validity of palette before setting permission.

## [2.4.0] - 9/5/2019
- Adds object lists and layer objects for decorations: TLN_ObjectList and TLN_SetLayerObjects()
- Adds layer priority: TLN_SetLayerPriority()
- Adds layer parent for synchronized scroll in several layers: TLN_SetLayerParent()
- Adds creation of sequential name-based sprite animations: TLN_CreateSpriteSequence()
- Adds new example for illustrating the new features: "Forest"
- Removes unused assets
- Fixes some compilation warnings

## [2.3.0] - ]19/3/2019
- Supports resource packager with AES-128 encryption
- Adds TLN_OpenResourcePack() and TLN_CloseResourcePack() to bind a resource pack created with the `respack` tool: https://megamarc.itch.io/resourcepacker

## [2.2.1] - 17/3/2019
- Windowing: adds TLN_GetWindowWidth() and TLN_GetWindowHeight() to get actual size of created window, to properly scaling mouse coordinates when using SDL_callback.
- Sprite: adds TLN_GetSpriteState() function and TLN_SpriteState structure to query detailed runtime info about a given sprite (position, actual size, etc.)

## [2.2.0 MPL] - 18/2/2019
- Changes license to MPL 2.0. Allows linking as static library, compatible with licensing requirements of console devkits

## [2.1.2] 2/2/2019
- Window: expands unique inputs up to 32 per player
- Window: added two new standard inputs: INPUT_QUIT for closing the window, and INPUT_CRT for toggling the CRT effect. They're assigned to Escape and Backspace by default, but can be remapped with TLN_DefineInputKey()
- Library: prints version, CPU word size and build date to the standard output on TLN_Init()

## [2.1.0] - 16/8/2018
- Adds logging support to standard output with TLN_SetLogLevel() and TLN_LogLevel enum type. Defaults to none
- Internal changes to enable the logging feature. Object creation and type checking now concentrates much of the internal error handling
- Loaders destroy the used SimpleXmlParser instance, there was a memory leak
- Test.c now test for various runtime errors
- fixes segment violation in various linux builds

## [2.0.0 LGPL] - 4/7/2018
- Releases full source code under LGPL 2.1 license
- Adds context mechanism with TLN_Engine and associated companion functions to work with multiple instances of the engine using a global context. Backwards compatible with previous version
- Functionally equivalent to older 1.21 MIT-licensed version

## [1.21.1] - 19/5/2018
- Window title and CRT effect state is retained between fullscreen/windowed mode toggles.
- TLN_LoadBitmap() loader only loads 8 bpp png images and discards other formats with a "TLN_ERR_WRONG_FORMAT" error instead of crashing.
- TLN_LoadTileset() loader discards non-multiple of 8 pixel tiles with a "TLN_ERR_WRONG_SIZE" error.
- String texts are copied with bounded strncpy() instead of strcpy() to avoid possible buffer overflows.

## [1.21.0] - 18/5/2018
- Adds function TLN_SetSDLCallback() to register a user-provided function that gets called every time an event is generated in the underlying SDL2 layer. This function receives a pointer to a SDL_Event union. You must include SDL_event.h from your SDL2 sdk. This callback is very useful to bypass the built-in input handling in Tilengine, reacting to custom keys, gamepad, mouse, etc

## [1.20] - 15/5/2018
- Adds new background type: full bitmap layers. Enable with TLN_SetLayerBitmap()
- Provides binaries for Windows x86 and x64, other builds to come
- Updates Python and C# bindings

## [1.19] - 3/12/2017
- Spriteset: adds TLN_SetSpritesetData() to modify spriteset attributes and pixels at runtime.
- Window: adds CWF_NEAREST window flag to the TLN_WindowFlags enumeration for window creation. This flag upscales window with nearest-neighbor instead of default bilinear filter.
- Engine: adds TLN_SetFrameCallback() to get a user-provided function called when a frame is about to be drawn. Especially useful for multi-threaded window

## [1.18] - 23/11/2017
- Vastly improved user input: 6 action buttons, start button, up to four simultaneous players. Key bindings and joystick buttons can be redefined. Introduces TLN_EnableInput(), TLN_AssignInputJoystick(), TLN_DefineInputKey(), TLN_DefineInputButton() and new input names
- Sequences can be queried for info about name and number of frames. Introduces TLN_GetSequenceInfo() and associated TLN_SequenceInfo structure

## [1.17] - 9/11/2017
- Tilesets edited in Tiled editor support a new property: "priority". Setting it to "true", sets all occurrences of the tile in a tilemap with the priority flag, so they are rendered in front of regular sprites
- TLN_CreateTileset() functions takes an array of the new TLN_TileAttributes structure instead of the old array of integers that just accepted the tile type

## [1.16] - 5/10/2017
- Fixed TLN_LoadTilemap() when loading other layer than the first one in
a tmx with many layers
- Fixed TLN_GetSpriteInfo() that returned wrong sprite dimensions
- Sprite flag FLAG_PRIORITY implemented, so now objects can be placed in
four different "priority spaces

## [1.14] - 2/6/2017 7:28:23
- Loads Tileset from Tilemap and attaches a reference
- Loads background color attribute from Tilemap
- Loads SequencePack from Tileset with pattern animations and attaches a
reference
- Loads the type of tile in Tileset, via custom attribute: "type"
integer in range 0-255
- New struture SequenceFrame to build Sequence objects at runtime, with
delay per-frame
- Deleted old TLN_Cycle object, unified its functionality to Sequence
object
- Extended TLN_TileInfo struct with new members to tell the type of a
tile and if a given cell is empty
- Added TLN_SetLayerMap() function to setup a layer only with a Tilemap
reference, it extracts and loads the attached Tileset automatically
- Added TLN_SetBGColorFromTilemap() function to set the background color
from a given Tilemap
- Added new functions to retrieve the new associations between objects
(Tileset -> Tilemap -> SequencePack), the dimensions of a layer in
pixels, the number of sequences in a SequencePack, and to query the
contained sequences by an index

## [1.13] - 6/5/2017
- New user defined pixel mapping transform for layers:
TLN_SetLayerPixelMapping()
- Fixed "shooter" example that crashed when boss was going to appear in
64 bit builds

## [1.12] - 26/4/2017
- Improved overall performance, especially with big tilesets, solid
areas and blending
- Reworked blending: deprecated "factor" parameter, added custom
blending function callback BLEND_CUSTOM and TLN_SetCustomBlendFunction
- Added mosaic effect for layers: TLN_SetLayerMosaic()
- Added CRT post-processing effect: TLN_EnableCRTEffect()
- Added palette manipulation functions: TLN_AddPaletteColor(),
TLN_SubPaletteColor, TLN_ModPaletteColor()
- The "Benchmark" sample now uses a real tsx/tmx pair instead of just
random noise

## [1.11] - 13/4/2017
- Implemented background layer clipping to a given rectangle:
TLN_SetLayerClip() and TLN_DisableLayerClip()

## [1.10] - 28/12/2016
- New TLN_GetErrorString(): returns string description about an error
- New TLN_SetLoadPath(): Graphic assets can now be located in their own
directory
- New TLN_SetTilesetAnimation(): implemented tileset animation in the
animation engine
- New modulation blending mode: BLEND_MUL
- TLN_TileInfo struct has new member ::color that returns color index at
the given location, useful for implementing pixel accurate collision
detection between sprite and tilemap
- Improved spriteset loader: can now read CSV files compatible with
online Leshy Spriteset Tool:
https://www.leshylabs.com/blog/posts/2013-12-03-Leshy_SpriteSheet_Tool.html
- Improved tilemap loader: can now accept NULL as layer name to read
the first layer in a multilayer tmx file
- Added SuperMarioClone sample that shows many of the new features

## [1.7] - 15/2/2016
- New active rendering without callbacks. See TLN_BeginFrame,
TLN_DrawNextScanline, TLN_BeginWindowFrame, TLN_EndWindowFrame

## [1.6.5] - 29/1/2016
- Fixed samples source code to match 1.6.5 API version
- New function TLN_Delay () to pause execution
- Affine transformed layers can now be combined with blending modes
- Adds native x64 Windows build

## [1.6] - 13/1/2016
- Per-pixel sprite collision detection
- Added two new functions: TLN_EnableSpriteCollision() and
TLN_GetSpriteCollision() to check collisions at pixel level

## [1.5] - 9/1/2016
- Runtime error information
- Adds TLN_GetLastError() and TLN_Error enumeration to check error causes at runtime

## [1.4] - 6/9/2015
- First public release
5 changes: 5 additions & 0 deletions build
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash
cd src
make
cd ..
sudo ./install
Loading