Friday, July 22, 2016

Hey! I'm back!

For real this time! Ancient Greeks had a maxim that said "Γηράσκω δ' αιεί πολλά διδασκόμενος", which roughly translates to "Even as I grow older, I never stop learning new things". And I love the Ancient Greeks. And I had a lot of studying to do.

Because of my studies of a dragon sieging my house, I had pretty little time to work on SDLU, thus I didn't really invest much time on thinking about new features or fixing any bugs (not that there are any deal-breaking bugs, thankfully most of them have been fixed).

Come summer time, I finally got myself some free time, which I plan on using to improve SDLU, hoping that experience I've gathered by working on other projects will help me along the way.

First goals would be to reduce the bloat of the build system, which inevitably means that some things will have to go (i like premake, and i actively use it on other projects, but it's just not working out with SDLU). Furthermore, special care will be given to fixing small annoying issues when compiling SDLU applications.

Lastly, some new stuff was added recently (SDLU_FileDialogW()), and hopefully more will be on the way! Plus, I actually have a Mac machine to work on now, so Mac OS X will get much more love than the current hit-or-miss scripts.

I'll be adding issues in the bug tracker, which you are more than welcome to review and give your opinions or help out by improving my stupid code. Till next time!


-- Aggelos Kolaitis

Monday, June 1, 2015

That was kinda sad

So, it has been quite a while before I wrote here, hasn't it? The last few months I had to focus mainly on my studies, and that didn't allow me to spend time on SDLU.

Truth is, I missed it... It was a fun project, and even though it never became well-known, I loved working on it. Now that I have time to spend on SDLU again, I plan on just trying to keep it stable enough for users that either want to use it directly without problems, or just want to see how they can accomplish certain SDL tasks (e.g. writing basic GUI components, like buttons).

That's why I'll mostly focus on clearing the code and making it easier to read and understand. New features may be added, yet nothing is sure. Stability and readability is now my focus.

-- Aggelos Kolaitis

Saturday, July 26, 2014

Added file dialog API [updated]

Ding ding ding!

I just added a new API (SDLU_FileDialog()), which fires up a file chooser dialog. See 'testfiledialog' for an example of its usage.

The back-ends supported so far are GTK+ (for UNIX and Mac OS X) and the Win32 API. Soon to be added is a native Mac OS X backend (using NSOpenPanel).

Just download the latest version from http://bitbucket.org/sdlu/sdlu/get/master.zip, compile and have fun! I have also uploaded snapshots at the downloads page at bitbucket.


-- Aggelos Kolaitis

Tuesday, June 24, 2014

Planning some "de-bloating"

Having finally finished my finals, I look into removing some bloat from the library. By "bloat", I refer to stuff that is of no real use, or stuff that can be simplified. Also, it is quite important to clean-up the source code, which is messed up in quite a few places, and remove some APIs that are not really needed anymore, e.g. the Framerate API, which is not needed since SDL got Vsync support.

-- Aggelos Kolaitis

Sunday, May 11, 2014

Many bug fixes for OpenGL

The last two days I sat down to finally solve the crashes and stack corruptions that occured from SDLU_GL_RenderCacheState() and SDLU_GL_RenderRestoreState() under Windows (Visual Studio and CodeBlocks).

AND, it seems that all of this was successful, since the functions now work as expected. Please get the latest version [ SDLU-2.1-102 ] from bitbucket if you have been experiencing those errors.

-- Aggelos Kolaitis

Friday, April 25, 2014

Source code snapshot [26 April 2014]

What's new in this source code snapshot:

Additions
  • New Combo Box API
  • Added SDLU_CreateSpriteFromRW()
  • Added SDLU::Turtle::GetTurtle()
Changes
none

Build System
  • Added BUILD_FRAMEWORK option to the CMake build system
  • Fixes for frameworkbuild.sh, sdlu-config and sdlu.pc
  • configure can now be told to find the SDL and SDL_ttf frameworks

Other
  • Many big or small bugs and memory leaks have been fixed

You can download the source code snapshot from the bitbucket downloads page, or use the following links:


Please test the library and report any bugs or feature requests in the SDLU bug tracker.

-- Aggelos Kolaitis

Wednesday, March 26, 2014

Please test the new SDLU.framework

About two weeks ago I added 'frameworkbuild.sh', which would build SDLU.framework under Mac OS X. This script suffered from a few issues, like building the library on the fly and depending on some hard-coded stuff.

Recently, I moved this functionality into the CMake build system, by adding an extra option BUILD_FRAMEWORK. Please test this out and report any bugs in the issue tracker.

-- Aggelos Kolaitis

Wednesday, March 12, 2014

Development update

The last few days I had to concentrate on my studying, so I've had little time for development. However, I'm currently in the process of writing a basic SDLU_ComboBox API. It will be added as soon as its completed (well, as soon as it works).

-- Aggelos Kolaitis

Sunday, March 2, 2014

Some special care for Mac OS X

Good news, Mac OSX users!

Yesterday I finally got my hands on a Macbook Pro (god, that retina is soooo great!). This allowed to actually test SDLU under Mac OS X. Several bugs in the build system for Mac OS X have been fixed, the iOS port actually works (with Xcode support!), and the tests run smoothly! If you had encountered any problems before, please update to the latest version from bitbucket.

-- Aggelos Kolaitis

Sunday, February 23, 2014

Please update to latest SDLU

SDL2 revision 8234 made a serious change in the order which event watchers are executed. SDLU depended on the undocumented fact that they were run in reverse order. Revision 8234 changes this, so if you use SDL2 revision 8234 or higher, please also update to the latest SDLU from git.

-- Aggelos Kolaitis

Thursday, January 30, 2014

SDLU 2.1 released!

SDLU is an open-source cross-platform library that makes developing SDL2 programs and games faster and easier.

SDLU supports Windows, Linux, Mac OS X, Android, iOS and the Raspberry Pi.

It is written in C, and is distributed under the terms of the zlib license, see COPYING for details.

You can get the source code from the git repository in bitbucket. After building the library, see the example programs in the "test/" subdirectory to get started. Documentation can be found in the header files, and if you downloaded SDLU from the downloads page at bitbucket, then HTML documentation can be found in the "docs/" folder.

For any questions, suggestions or thoughts, feel free to contact me at "neoaggelos@gmail.com".

Features:
* Cross-platform, zlib licensed, just like SDL2
* Fully featured Button API, with SDL2 event queue integration
* Support for static or animated hardware accelerated sprites
* Extends SDL2 Render API with polygon rendering routines
* Text Rendering API
* APIs that allow mixing pure OpenGL calls with the SDL2 Render API
* Ini file handling API
* Turtle drawing API
* Optional cxx interface
* .... and much more

Blog:           http://libsdlu.blogspot.com
Repository: http://bitbucket.org/sdlu/sdlu


-- Aggelos Kolaitis
-- The SDL Utility Library [http://bitbucket.org/sdlu/sdlu]

Saturday, December 28, 2013

Source code snapshot [28th Dec 2013]

The latest snapshot adds many new interesting features:

API Additions
  • Added SDLU::RWops cxx class
  • Added SDLU_GL_RenderCacheState() and SDLU_GL_RenderRestoreState(), which enable mixing pure OpenGL calls with the SDL2 Render API
API Changes
  • SDLU_SaveIniRW() and SDLU_LoadIniRW() now have a freesrc parameter
  • OpenGL functions are dynamically loaded, so we don't have to link to -lGL
Build System
  • Added configure script for the tests
  • You can now build deb and rpm packages using CMake
  • Check for std::string support
I have uploaded the source code snapshots as zip or tar.gz archives in the Downloads section of the repository over at bitbucket. The snapshots contain the latest source code, along with pre-generated documentation by doxygen.

If you have a copy of the git repository, the snapshot is tagged with the name snapshot-281213. (281213 stands for 28/12/13, I just don't like having slashes '/' in the tag name).
As always please test the library, run the test programs and report issues at the issue tracker.

-- Aggelos Kolaitis

New OpenGL API: Mix pure OpenGL calls with the SDL2 Render API!

Hello fellow programmers!


I'm writing this post to announce the new API that was added in the library only yesterday, namely SDLU_GL_RenderCacheState() and SDLU_GL_RenderRestoreState().

These two functions allow you to mix pure OpenGL, OpenGL ES or OpenGL ES 2 calls with the SDL2 Render API. They dynamically load the required OpenGL symbols that are used, and so all OpenGL libraries (desktop GL, GLES, GLES2) are supported.

Example:

SDL_RenderClear(sdl_renderer);
SDL_RenderDrawPoint(sdl_renderer, 100, 100);

SDLU_GL_RenderCacheState(sdl_renderer);
glColor3f(1,0,0);
glRecti(150, 150, 200, 200);
SDLU_GL_RenderRestoreState(sdl_renderer);

SDL_RenderPresent(sdl_renderer); 
 
For a complete example, you might want to check out testrender2 (link).

-- Aggelos Kolaitis

Wednesday, December 18, 2013

Source code snapshot [18/12/13]

The following new things are included in the source code snapshot:

Build System:
  • Added '--enable-cxx' and '--enable-debug' configure options
  • Initial support for cross-compilation of the Raspberry Pi port from Linux
  • Many bug fixes in the build system
  • Added sdlu-config script 
API Additions:
  • Added ini file handling API
  • Added new math API (for vector manipulation)


I have uploaded the source code snapshots as zip or tar.gz archives in the Downloads section of the repository over at bitbucket. The snapshots contain the latest source code, along with pre-generated documentation by doxygen.

If you have a copy of the git repository, the snapshot is tagged with the name snapshot-181213. (181213 stands for 18/12/13, I just don't like having slashes '/' in the tag name).

As always please test the library, run the test programs and report issues at the issue tracker.

-- Aggelos Kolaitis

Thursday, November 28, 2013

Source code snapshot [28/11/13]

This is the first source code snapshot since the 2.0.1 release. For a list of changes, see the ChangeLog.

I have uploaded the source code snapshots as zip or tar.gz archives in the Downloads section of the repository over at bitbucket. The snapshots contain the latest source code, along with pre-generated documentation by doxygen.

If you have a copy of the git repository, the snapshot is tagged with the name snapshot-281113. (281113 stands for 28/11/13, I just don't like having slashes '/' in the tag name).

As always please test the library, run the test programs and report issues at the issue tracker.

-- Aggelos Kolaitis

Tuesday, November 26, 2013

Development State [26/11/13]

  • Over the past two weeks, almost all of my time working with SDLU was spent at updating the build system. Here's the detailed info:

Build System:
  • Added new autotools build system
  • Added CMake build system for the tests
  • Added ability to link to OpenGL ES on desktop platforms [premake]  
  • Fixed compatibility with premake 4.3
  • Lots of bug fixes
API Changes:
    none

Misc Changes:
  • Increased speed of SDLU_RenderSetPoints()
  • Fixed common test code build errors for Android 
  • Removed old-unused code from the Button API
-- Aggelos Kolaitis

Wednesday, November 20, 2013

Autotools build system for SDLU [Updated]

Yeah, you read it right. After expirementing with autotools for a few days, I am proud to announce that the autotools build system (using autoconf, automake and libtool) is almost ready!

Adding an autotools build system (./configure) is in my belief a huge addition, because it makes SDLU much more convenient to build under Linux (mainly because configure does not depend on anything extra installed, other than a basic GNU system).

Of course, there are some things that have to be done first, like extending portability and testing on different GNU hosts (currently it's only tested under Ubuntu and Linux Mint).

I strongly believe that the build system will be ready and in the master repository by the end of this week, if I manage to take some time of studying.

UPDATE:
The autotools build system is now live in the bitbucket repository. Enjoy! (and report any bugs in the issue tracker.

-- Aggelos Kolaitis

Monday, November 11, 2013

Development State [11th November]

This is the first development update since the 2.0.1 release. The last week I didn't do much, but here's the changelog.

API Additions
  • Added button flag SDLU_BUTTON_FOREIGN, which allows you to have buttons without depending on the SDL2 Render API.
API Changes
  • Points in SDLU_RenderDrawPolygon() and SDLU_RenderFillPolygon() should now be passed SDL_Point* lists. 
  • Moved all cxx classes into the namespace SDLU, to make sure that naming collisions are avoided 
Build System
  • Many updates and fixes in the premake and CMake build systems
  • Added linux x86_64 executable  
Other Changes
  • A number of bug fixes in the code
  • Eliminated build errors
Expect a code snapshot soon...

-- Aggelos Kolaitis

Wednesday, November 6, 2013

I've been away...

Over the course of the past few days I haven't had much time to work on SDLU. There have been a few fixes here and there. and very few (but important!) feature additions.

But you need not worry my loyal users (all five of you :p), many things are yet to come!

Probably next week will be more productive.