annotate README @ 5053:b5b42be9333c

Fixed bug #1026 Vittorio Giovara 2010-07-16 19:09:28 PDT i was reading SDL_renderer_gles and i noticed that every time we there is some gl call the gl state is modified with a couple of glEnableClientState()/glDisableClientState. While this is completely fine for desktops systems, this is a major performace kill on mobile devices, right where opengles is implemented. Normal practice in this case is to update the glstate once, keep it always the same and disable/enable other states only in very special occasions. On the web there's plenty of documentation (on the top of my head http://developer.apple.com/iphone/library/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/Performance/Performance.html#//apple_ref/doc/uid/TP40008793-CH105-SW5 ) and i personally tried this. I modified my code and got a 10 fps boost, then modified SDL_render_gles and shifted from 40 fps to 50 fps alone -- considering that i started from ~30fps i got an 80% performance increase with this technique. I have attached a dif of my changes, hope that it will be included in mainstream.
author Sam Lantinga <slouken@libsdl.org>
date Wed, 19 Jan 2011 23:56:16 -0800
parents 1ed5d432e468
children 797b37c0c046
rev   line source
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
1
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
2 Simple DirectMedia Layer
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
3
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
4 (SDL)
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
5
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
6 Version 1.2
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
7
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
8 ---
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
9 http://www.libsdl.org/
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
10
602
a24bd700f92e *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 579
diff changeset
11 This is the Simple DirectMedia Layer, a general API that provides low
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
12 level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL,
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
13 and 2D framebuffer across multiple platforms.
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
14
1763
1c8672065e3b Updated to include new languages and platform support
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
15 The current version supports Linux, Windows, Windows CE, BeOS, MacOS,
1c8672065e3b Updated to include new languages and platform support
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
16 Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX.
3283
1ed5d432e468 Removed outdated Atari support
Sam Lantinga <slouken@libsdl.org>
parents: 3272
diff changeset
17 The code contains support for AIX, OSF/Tru64, RISC OS, and SymbianOS,
1ed5d432e468 Removed outdated Atari support
Sam Lantinga <slouken@libsdl.org>
parents: 3272
diff changeset
18 but these are not officially supported.
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
19
1763
1c8672065e3b Updated to include new languages and platform support
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
20 SDL is written in C, but works with C++ natively, and has bindings to
1c8672065e3b Updated to include new languages and platform support
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
21 several other languages, including Ada, C#, Eiffel, Erlang, Euphoria,
1c8672065e3b Updated to include new languages and platform support
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
22 Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP,
1c8672065e3b Updated to include new languages and platform support
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
23 Pike, Pliant, Python, Ruby, and Smalltalk.
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
24
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
25 This library is distributed under GNU LGPL version 2, which can be
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
26 found in the file "COPYING". This license allows you to use SDL
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
27 freely in commercial programs as long as you link with the dynamic
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
28 library.
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
29
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
30 The best way to learn how to use SDL is to check out the header files in
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
31 the "include" subdirectory and the programs in the "test" subdirectory.
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
32 The header files and test programs are well commented and always up to date.
1763
1c8672065e3b Updated to include new languages and platform support
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
33 More documentation is available in HTML format in "docs/index.html", and
1c8672065e3b Updated to include new languages and platform support
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
34 a documentation wiki is available online at:
1c8672065e3b Updated to include new languages and platform support
Sam Lantinga <slouken@libsdl.org>
parents: 1621
diff changeset
35 http://www.libsdl.org/cgi/docwiki.cgi
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
36
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
37 The test programs in the "test" subdirectory are in the public domain.
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
38
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
39 Frequently asked questions are answered online:
369
e405cf8bf580 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 362
diff changeset
40 http://www.libsdl.org/faq.php
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
41
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
42 If you need help with the library, or just want to discuss SDL related
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
43 issues, you can join the developers mailing list:
369
e405cf8bf580 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 362
diff changeset
44 http://www.libsdl.org/mailing-list.php
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
45
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
46 Enjoy!
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
47 Sam Lantinga (slouken@libsdl.org)
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
48