summaryrefslogtreecommitdiff
path: root/src/openglgraphics.h
AgeCommit message (Collapse)AuthorFilesLines
2024-10-18Take only const pointers to images in GraphicsThorbjørn Lindeijer1-4/+4
Helps making sure we're not modifying the images in the rendering code. Re-applies 4eea727b7649726670d8963d11ab4fd429624b3e (and reverts 363f71157a8107190b3bd2ba656faf0a0e63ab36).
2024-03-26Added support for HiDPI fontsThorbjørn Lindeijer1-1/+1
* TrueTypeFont class now takes into account the graphics scale, in order to render an appropriate higher-resolution texture. * Removed TrueTypeFont::fontCounter, since TTF_Init/TTF_Quit already keep a counter. * Avoid copying the rendered string needlessly, when it already exists in the cache. Avoid another copy, when inserting a new chunk into the cache.
2024-03-26Added functions to draw images at sub-pixel positionsThorbjørn Lindeijer1-6/+7
This can be used for smoother mouse cursor movement when rendering our own mouse cursor (already changed in this commit) and is also necessary for implementing support for HiDPI font rendering. Also dropped some almost duplicated OpenGL code.
2024-03-22Added support for scaling the outputThorbjørn Lindeijer1-4/+14
* Added "Scale" user option, which can either by "Auto" or an explicit scaling factor. Its maximum value depends on the current resolution. The "Auto" factor is based on keeping the logical resolution on at least 800x600, wheres the maximum scale is based on keeping the logical resolution on at least 640x480. * Enabled support for High DPI. This means the rendering target can now have a different resolution than the window size, which can happen on macOS, Windows and Wayland. The resulting scale is multiplied by the above user-controlled scale. Currently, this looks ugly for non-integer scales, which are not used on macOS and can only be configured on some Wayland compositors. Has not been tested on Windows. * Simplified OpenGL initialization (moved out of _beginDraw). * Made sure _beginDraw/_endDraw sets a clip area also for SDLGraphics.
2024-02-27Added VSync and windowed fullscreen optionsThorbjørn Lindeijer1-14/+8
The configuration and setup UI were adjusted to the new options. This also fixes issues in applying new video settings. Default resolution was changed from 800x600 to 1280x720. VSync is enabled by default while FPS limit was disabled. Display aspect ratio for the resolution options. I had to work around some macOS issues: * Don't change window size when it appears to be "maximized", since it just changes the rendering area while leaving the window maximized. * Unset fullscreen display mode temporarily to allow changing resolutions, otherwise the rendering area no longer matches the screen and mouse input is also off. * Removed SDL_WINDOW_ALLOW_HIGHDPI for now because it causes issues on macOS, since we're not actually handling the scaling factor. A Video class and an SDLGraphics subclass were split off from Graphics. This setup has Less duplication and leaves the OpenGLGraphics and SDLGraphics better separated. Fixes #57 Fixes #58
2024-01-26Apply C++11 fixitsThorbjørn Lindeijer1-18/+18
modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using
2024-01-25Ported to SDL2Thorbjørn Lindeijer1-3/+6
2012-08-12Removed manual calling of glFlush and made glFinish optionalThorbjørn Lindeijer1-0/+11
Actually neither glFlush nor glFinish need to be called manually [1]. However, the rendering pipeline is then free to queue up future frames which can cause a lag which is especially noticable with mouse movement. To avoid this lag, we call glFinish after SDL_GL_SwapBuffers. This makes sure processing of the next frame does not start before the current frame is being displayed. [1] http://www.opengl.org/wiki/Common_Mistakes#glFinish_and_glFlush Reviewed-by: Yohann Ferreira Sounded-fine-to: Erik Schilling
2012-08-05Some cleanups in OpenGL codeThorbjørn Lindeijer1-12/+1
* Removed empty and unused function `setTargetPlane` * Removed duplicated enabling of `GL_VERTEX_ARRAY` * Removed strange smoothing code from `drawRescaledImage` Reviewed-by: Erik Schilling
2012-01-26Updated copyrights to 2012Thorbjørn Lindeijer1-1/+1
2012-01-26Removed 'inline' keyword where it's not of any valueThorbjørn Lindeijer1-4/+4
Members that are implemented inline are already inline, there is no need to mark them as such. Made two inline members of OpenGLGraphics private since because they are marked as inline, they can't be used from other classes. Reviewed-by: Erik Schilling
2011-09-08Merge remote-tracking branch 'origin/0.5'Ben Longbons1-1/+1
2011-09-07Changes need to build without OpenGLBen Longbons1-1/+1
2010-12-06Removed superfluous #includes taken from checkheaders list.Yohann Ferreira1-2/+0
Resolves: Mana-Mantis #265. Trivial fix.
2010-08-03Improve OpenGL speed.Andrei Karas1-2/+21
Use batch commands and not selecting already selected texture. Signed-off-by: Jared Adams <jaxad0127@gmail.com>
2010-07-27Improve OpenGL speed.Andrei Karas1-2/+21
Use batch commands and not selecting already selected texture. Signed-off-by: Jared Adams <jaxad0127@gmail.com>
2010-02-22Modify copyright headersFreeyorp1-1/+2
2010-02-20License header update for The Mana ClientThorbjørn Lindeijer1-4/+3
2010-02-07Updated Copyright year to 2010!Bertram1-1/+1
Also added the update copyright tool from the Wormux Team. ( And not forgetting credit's due. :P )
2009-09-23Added a basic smooth effect to rescaled wallpapers in OpenGL.Bertram1-0/+9
The current login wallpaper (as any streched ones) will look a bit less ugly...
2009-07-27Added the ability to ask a ambient layer to keep its ratio when the ↵Bertram1-0/+7
resolution isn't the default. You'll have to add this in map properties, for instance if you're want to keep ratio on overlay 0: <map version="1.0" orientation="orthogonal" width="128" height="128" tilewidth="32" tileheight="32"> <properties> ... <property name="overlay0keepratio" value="true"/> ... </properties> </map>
2009-07-24Made the wallpaper be rescaled when necessary under SDL and OpenGL.Bertram1-0/+9
The SDL methods to rescale the wallpaper has been optimized to permit rescaling at load time while OpenGL draws directly rescaled. Does someone know how to smooth the rescaled image under OpenGL?
2009-04-14Unduplicated the code that draws a quadBjørn Lindeijer1-1/+1
Shouldn't affect performance.
2009-03-23Merge branch 'aethyra/master'Bjørn Lindeijer1-0/+4
Conflicts: Many files.
2009-03-16Optimising OpenGLGraphics::drawImagePatternSteve Cotton1-0/+4
2009-02-10Fixed header files, as well as removed the unused buddy list class (notIra Rice1-2/+3
useful since buddy lists are tracked through the player relation interface instead) Signed-off-by: Ira Rice <irarice@gmail.com>
2009-01-25Removed the TMW branding from header guardsBjørn Lindeijer1-2/+2
2009-01-25Removed the TMW branding from header guardsBjørn Lindeijer1-2/+2
2009-01-23Removed unnecessary references to The Mana World in code headersBjørn Lindeijer1-4/+4
This dates back to the old days of TMW, but the usage instructions of GPLv2 don't mention this being necessary. Since it doesn't add anything, avoid the branding in these sections.
2009-01-23Removed unnecessary references to The Mana World in code headersBjørn Lindeijer1-4/+4
This dates back to the old days of TMW, but the usage instructions of GPLv2 don't mention this being necessary. Since it doesn't add anything, avoid the branding in these sections.
2008-12-31Made an option around the syncing, but no way to change it for now.Bjørn Lindeijer1-0/+8
(cherry picked from mainline commit f6f8b2f885145d4cacf7a6c42d88b6a39f71b366) Conflicts: src/openglgraphics.cpp
2008-12-02Made an option around the syncing, but no way to change it for now.Bjørn Lindeijer1-0/+8
2008-11-18Pedantic fixes to the client, where I alphabetized all of the include Ira Rice1-2/+0
statements, as well as removing the new skill dialog, which we do not, nor will we use (if we do, it'd be a new one that we'd make). WARNING!!! This, and all other previous builds have a linker error for the Gnome libraries version 4.3.2 on my setup. It's assumed that this is also the case for other users of this library as well. I'm currently assuming that there's a bug in the compiler itself, and will look into reporting this, but in the mean time, it doesn't build for these users, unfortunately. Sorry about this.
2008-11-16Got rid of CVS/Subversion $Id$ markersBjørn Lindeijer1-2/+0
I don't know why we dealt with these things for so long. Did we ever get anything out of it?
2008-07-18Import of client treeLloyd Bryant1-1/+1
2007-10-18Merged removal of dependency on Guichan OpenGL from trunk to 0.0 branch, Bjørn Lindeijer1-8/+2
including optimization of OpenGL memory usage on modern OpenGL drivers. Patches by Guillaume Melquiond.
2005-09-19Mostly code cleanups related to commits in past two days.Bjørn Lindeijer1-6/+11
* Replaced custom function FIND_PATH with AC_PATH_PROG, used for finding sdl-config. * Removed -lphysfs from Makefile.am which should be added automatically already. * Actually show the overweight message, and only show it once for each time weight goes above half the max weight. * Surfaces passed to SDL_BlitSurface shouldn't be locked according to the manual. * Minimal fps limit is now 10 fps. * Reverted change by Bertram that hardcoded the updatehost value.
2005-09-18Changed Graphics::saveScreenshot to Graphics::getScreenshot. Now using the ↵Björn Steinbrink1-0/+5
ImageWriter to save that screenshot.
2005-08-25Reducing the code duplication a little more.Björn Steinbrink1-1/+6
2005-08-25Reduce code duplication.Björn Steinbrink1-2/+4
2005-08-18Semi-separated OpenGL and SDL graphics classes, improving OpenGL performance.Björn Steinbrink1-0/+68