KGameRendererClient

Search for usage in LXR

KGameRendererClient Class Referenceabstract

#include <KGameRendererClient>

Inheritance diagram for KGameRendererClient:

Public Member Functions

 KGameRendererClient (KGameRenderer *renderer, const QString &spriteKey)
 
QHash< QColor, QColorcustomColors () const
 
int frame () const
 
int frameCount () const
 
KGameRendererrenderer () const
 
QSize renderSize () const
 
void setCustomColors (const QHash< QColor, QColor > &customColors)
 
void setFrame (int frame)
 
void setRenderSize (const QSize &renderSize)
 
void setSpriteKey (const QString &spriteKey)
 
QString spriteKey () const
 

Protected Member Functions

virtual void receivePixmap (const QPixmap &pixmap)=0
 

Detailed Description

An object that receives pixmaps from a KGameRenderer.

This class abstracts a sprite rendered by KGameRenderer. Given a sprite key, render size and possibly a frame index, it returns the QPixmap for this sprite (frame) once it becomes available. See the KGameRenderer class documentation for details.

Subclasses have to reimplement the receivePixmap() method.

Since
4.6

Definition at line 41 of file kgamerendererclient.h.

Constructor & Destructor Documentation

◆ KGameRendererClient()

KGameRendererClient::KGameRendererClient ( KGameRenderer renderer,
const QString spriteKey 
)

Creates a new client which receives pixmaps for the sprite with the given spriteKey as provided by the given renderer.

Definition at line 22 of file kgamerendererclient.cpp.

Member Function Documentation

◆ customColors()

QHash< QColor, QColor > KGameRendererClient::customColors ( ) const
Returns
the custom color replacements for this client

Definition at line 94 of file kgamerendererclient.cpp.

◆ frame()

int KGameRendererClient::frame ( ) const
Returns
the current frame number, or -1 for non-animated sprites

Definition at line 58 of file kgamerendererclient.cpp.

◆ frameCount()

int KGameRendererClient::frameCount ( ) const
Returns
the frame count, or 0 for non-animated sprites, or -1 if the sprite does not exist at all
See also
KGameRenderer::frameCount()

Definition at line 53 of file kgamerendererclient.cpp.

◆ receivePixmap()

virtual void KGameRendererClient::receivePixmap ( const QPixmap pixmap)
protectedpure virtual

This method is called when the KGameRenderer has provided a new pixmap for this client (esp.

after theme changes and after calls to setFrame(), setRenderSize() and setSpriteKey()).

Implemented in KGameCanvasRenderedPixmap, KGameRenderedObjectItem, and KGameRenderedItem.

◆ renderer()

KGameRenderer * KGameRendererClient::renderer ( ) const
Returns
the renderer used by this client

Definition at line 35 of file kgamerendererclient.cpp.

◆ renderSize()

QSize KGameRendererClient::renderSize ( ) const
Returns
the size of the pixmap requested from KGameRenderer

Definition at line 81 of file kgamerendererclient.cpp.

◆ setCustomColors()

void KGameRendererClient::setCustomColors ( const QHash< QColor, QColor > &  customColors)

Defines the custom color replacements for this client.

That is, for each entry in this has, the key color will be replaced by its value if it is encountered in the sprite.

Note
Custom colors increase the rendering time considerably, so use this feature only if you really need its flexibility.

Definition at line 99 of file kgamerendererclient.cpp.

◆ setFrame()

void KGameRendererClient::setFrame ( int  frame)

For animated sprites, render another frame.

The given frame number is normalized by taking the modulo of the frame count, so the following code works fine:

class MyClient : public KGameRendererClient { ... }
MyClient client;
client.setFrame(client.frame() + 1); //cycle to next frame
client.setFrame(KRandom::random()); //choose a random frame

Definition at line 63 of file kgamerendererclient.cpp.

◆ setRenderSize()

void KGameRendererClient::setRenderSize ( const QSize renderSize)

Defines the size of the pixmap that will be requested from KGameRenderer.

For pixmaps rendered on the screen, you usually want to set this size such that the pixmap does not have to be scaled when it is rendered onto your primary view (for speed reasons).

The default render size is very small (width = height = 3 pixels), so that you notice when you forget to set this. ;-)

Definition at line 86 of file kgamerendererclient.cpp.

◆ setSpriteKey()

void KGameRendererClient::setSpriteKey ( const QString spriteKey)

Defines the key of the sprite which is rendered by this client.

Definition at line 45 of file kgamerendererclient.cpp.

◆ spriteKey()

QString KGameRendererClient::spriteKey ( ) const
Returns
the key of the sprite currently rendered by this client

Definition at line 40 of file kgamerendererclient.cpp.


The documentation for this class was generated from the following files:
KCOREADDONS_EXPORT int random()
An object that receives pixmaps from a KGameRenderer.
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Sun Dec 4 2022 03:50:22 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.