Coder Social home page Coder Social logo

darthmike / indielib-crossplatform Goto Github PK

View Code? Open in Web Editor NEW
61.0 61.0 27.0 141.82 MB

IndieLib is a cross-platform Game Graphics engine. Main focus is OpenGL ES 2.0 for mobile iOS operating system, and OpenGL desktop. **NOT SUPPORTED ANYMORE**

License: zlib License

C 56.45% C++ 16.56% Gnuplot 0.01% Assembly 0.02% Objective-C 3.67% Shell 3.57% Pascal 0.53% C# 6.35% Visual Basic 1.43% Java 0.09% Perl 0.18% Python 0.44% Awk 0.01% CSS 0.08% JavaScript 0.15% RPC 8.89% Makefile 0.90% Roff 0.65% Batchfile 0.01% PHP 0.01%
2d-rendering-engine directx graphics opengl opengl-es

indielib-crossplatform's People

Contributors

faybe avatar m-f-k avatar markz3 avatar

Stargazers

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

Watchers

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

indielib-crossplatform's Issues

ManualTests for indielib entities/surfaces/animations repeat code

Should refactor not to repeat test setup code:

  • Entities/animations/surfaces array creation/destruction
  • Test entities/animatins/surfaces adding to managers
  • ShowGridAreas on/off logic
  • Test entities removing from managers when test is finished

This issue has low priority, but it's worth to refactor for future tests creation in an easy way.

BlitGridLine and BlitGridQuad should be private in IND_Render class

Current OpenGL implementation doesn't respect transformation matrix push/pop for blitGridline and blitGridQuad methods if singularly called. These methods nevertheless are intended to use for blitGridAreas (this method does respect matrix balance)

If user of library uses blitGridLine or blitGridQuad they will not function correctly.

Text blitting shows 'trash' characters

Seems like a regression, as this was working before we imported from SVN repo.

Reproduction:

  • Run 'manual' tests
  • go to test involving text.

All texts contain 'trash'

Tutorial 08 is misplaced totally out of screen in OpenGL

This is a bug/task to implement collision processing blitting correctly in OpenGL upon start. Something is amiss because that functionality if disabled at the time of writing this bug.

Need to create a test for this not to see this issue again in the future.

As a side note, tutorial 08 works perfectly on DirectX.

Resource path loading fix for linux

In the Tutorials / Tests the resource paths are relative to the compiled windows binary. Therefore the paths fails loading on linux. We need to move the compiled linux binary to the bin// folder ( and of cause do this for other platforms as well). After this all paths should be changed in the code.


rev. 579 adds code for 'workingpath' handling in every tests, even in unittests, for unix system. Only need to modify makefile to deploy binary to the directory:
/bin/linux

All relative paths consider a 2 level deep hierarchy from where 'resources' directory is.


have partly fixed this issue (rev 624), - Now unittests builds and runs ( but not yet from the /bin/linux path ) . The result yields the following output:

Working path changed to: /home/michael/indielib/linux/tests/unittestsSuccess: 10 tests passed.
Test time: 0.00 seconds.

Not sure if all unittests are run - where can one see where which unittest are included ?

OpenGL renderer is not discarding elements out of bounding rectangle

In DirectX renderer, before blitting and calling graphics API, vertexes are checked to see if they are 'visible'. That improves performance, especially in big scenes out of the screen.

See methods for DirectXRenderer which implement this:

  • blitWrapSurface
  • blitRegionSurface
  • blitGrid
  • blitSurface

Makefiles for OSX and probably iOS need to be updated for FreeImage

We should submit ticket to FreeImage devs to show them the problem and for them to fix.

Problem is with XCode 4.3:

  • gcc compiler is replaced by llvm-gcc. Also sdk paths
  • ppc architecture is not supported
  • sdk roots replaced for XCode 4.3 (inside sandboxed app)

rev. 558 fixes OSX makefile

Tiled Map file support in Indielib

support the .tmx file format.

A parser library have allready been included in the repository (look in dependencies - a new folder is added).

Two classes are added to the engine in the repository: IND_TmxMap and IND_TmxMapManager.

Work that needs to be done:

  1. include files in win32 build.
  2. more functionality in the advanced tutorial 05
  3. fix header include in files IND_TmxMap.h and IND_TmxMapManager.h. Study Ind_image and IND_imageManager to get an idea to how to handle the problem .. maybe a typedef i the solution.

Collision support for OpenGL renderer

All features related to collision support are disabled for OpenGL renderer:

  1. Collision calculations (maybe this should be in math utilities)
  2. Collision lines rendering
  3. Collision flags (related to 1.)

Change devilLib for Freeimage.

Already done by DarthMike...

NOTE: Some IND_Image filters are disabled. FreeImage does not support that kind of functionlality. To be implemented by new team members or in version 1.0.

Handle properly new events from SDL 2.0

After migrating to SDL 2.0, events are not handled:
SDL_TEXTEDITING, /< Keyboard text editing (composition) */
SDL_TEXTINPUT, /
< Keyboard text input /
/
Tablet or multiple mice input device events /
SDL_INPUTMOTION = 0x500, /< Input moved */
SDL_INPUTBUTTONDOWN, /
< Input button pressed */
SDL_INPUTBUTTONUP, /< Input button released */
SDL_INPUTWHEEL, /
< Input wheel motion */
SDL_INPUTPROXIMITYIN, /__< Input pen entered proximity */
SDL_INPUTPROXIMITYOUT, /
*< Input pen left proximity */

/* Joystick events */
SDL_JOYAXISMOTION  = 0x600, /**< Joystick axis motion */
SDL_JOYBALLMOTION,          /**< Joystick trackball motion */
SDL_JOYHATMOTION,           /**< Joystick hat position change */
SDL_JOYBUTTONDOWN,          /**< Joystick button pressed */
SDL_JOYBUTTONUP,            /**< Joystick button released */

/* Touch events */
SDL_FINGERDOWN      = 0x700,
SDL_FINGERUP,
SDL_FINGERMOTION,
SDL_TOUCHBUTTONDOWN,
SDL_TOUCHBUTTONUP,    

/* Gesture events */
SDL_DOLLARGESTURE   = 0x800,
SDL_DOLLARRECORD,
SDL_MULTIGESTURE,

We need some for mobile devices (touches) and others should be offered as part of IndieLib handling events for user


rev. 583 fixes SDL_MOUSEWHEEL

Grayscale image loading is not implemented with FreeImage

After library change grayscale images are not correctly loaded using freeImage. Need to verify/reimplement/fix:

  • Load grayscale image, convert to another type
  • Load rgb image, convert to another type
  • Load grayscale image, transform it via any IND_Image methods.

SDL 2.0 method SDL_SetWindowDisplayMode only works for fullscreen mode

When resetting window resolution in windowed mode, the call to SDL_SetWindowDisplayMode does not do anything. If we want to support resolution resetting on windowed mode without destroying the window this method in SDL 2.0 should offer params resetting.

Deleting window causes, for DirectX and OpenGL contexts/devices to be invalid, thus loosing all loaded objects (textures, buffer objects) on the renderer. User should then reload all assets, which complicates all engine logic.


Original non-crossplatform code used SDL 1.2, and called, without destroying the window, SDL_SetVideoMode(..), thus resetting window resolution correctly without destroying the video device/context.

Reduce all warnings to 0

We should tolerate no warnings in the project. As far as OpenGL features are ported, we should remove all warnings.


Regarding linux, - At present time, these 4 are the only warnings that are left:

../common/dependencies/TmxParser/TmxMap.cpp: In member function 'void Tmx::Map::ParseFile(const string&)':
../common/dependencies/TmxParser/TmxMap.cpp:137:37: warning: ignoring return value of 'size_t fread(void_, size_t, size_t, FILE_)', declared with attribute warn_unused_result [-Wunused-result]

../common/dependencies/FreeImage/Source/ZLib/gzwrite.c: In function 'gz_comp':
../common/dependencies/FreeImage/Source/ZLib/gzwrite.c:93:9: warning: implicit declaration of function 'write' [-Wimplicit-function-declaration]

../common/dependencies/FreeImage/Source/ZLib/gzwrite.c: In function 'gzclose_w':
../common/dependencies/FreeImage/Source/ZLib/gzwrite.c:567:5: warning: implicit declaration of function 'close' [-Wimplicit-function-declaration]

../common/dependencies/FreeImage/Source/ZLib/gzlib.c: In function 'gz_open':
../common/dependencies/FreeImage/Source/ZLib/gzlib.c:213:9: warning: implicit declaration of function 'lseek' [-Wimplicit-function-declaration]


In linux : found these new ones:

../common/src/IND_AnimationManager.cpp: In member function 'bool IND_AnimationManager::addToSurface(IND_Animation_, char_, IND_Type, IND_Quality)':
../common/src/IND_AnimationManager.cpp:117:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
../common/src/IND_AnimationManager.cpp: In member function 'bool IND_AnimationManager::addToSurface(IND_Animation_, char_, IND_Type, IND_Quality, BYTE, BYTE, BYTE)':
../common/src/IND_AnimationManager.cpp:164:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
../common/src/IND_AnimationManager.cpp: In member function 'bool IND_AnimationManager::addToSurface(IND_Animation_, char_, int, IND_Type, IND_Quality)':
../common/src/IND_AnimationManager.cpp:203:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
../common/src/IND_AnimationManager.cpp: In member function 'bool IND_AnimationManager::addToSurface(IND_Animation_, char_, int, IND_Type, IND_Quality, BYTE, BYTE, BYTE)':
../common/src/IND_AnimationManager.cpp:246:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

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.