FIFE  be64c707dea6b3250bd4355bf5c825d25920087d
FIFE::LayerCache Class Reference

#include <layercache.h>

+ Collaboration diagram for FIFE::LayerCache:

Classes

struct  Entry
 

Public Types

typedef QuadTree< std::set< int32_t > > CacheTree
 

Public Member Functions

 LayerCache (Camera *camera)
 
 ~LayerCache ()
 
void setLayer (Layer *layer)
 
void update (Camera::Transform transform, RenderList &renderlist)
 
void addInstance (Instance *instance)
 
void removeInstance (Instance *instance)
 
void updateInstance (Instance *instance)
 
ImagePtr getCacheImage ()
 
void setCacheImage (ImagePtr image)
 

Private Types

enum  RenderEntryUpdateType { EntryNoneUpdate = 0x00, EntryVisualUpdate = 0x01, EntryPositionUpdate = 0x02, EntryFullUpdate = 0x03 }
 
typedef uint8_t RenderEntryUpdate
 

Private Member Functions

void collect (const Rect &viewport, std::vector< int32_t > &indices)
 
void reset ()
 
void fullUpdate (Camera::Transform transform)
 
void fullCoordinateUpdate (Camera::Transform transform)
 
void updateEntries (std::set< int32_t > &removes, RenderList &renderlist)
 
bool updateVisual (Entry *entry)
 
void updatePosition (Entry *entry)
 
void updateScreenCoordinate (RenderItem *item, bool changedZoom=true)
 
void sortRenderList (RenderList &renderlist)
 

Private Attributes

Cameram_camera
 
Layerm_layer
 
CacheLayerChangeListenerm_layerObserver
 
CacheTreem_tree
 
ImagePtr m_cacheImage
 
std::map< Instance *, int32_t > m_instance_map
 
std::vector< Entry * > m_entries
 
std::vector< RenderItem * > m_renderItems
 
std::set< int32_t > m_entriesToUpdate
 
std::deque< int32_t > m_freeEntries
 
bool m_needSorting
 
double m_zMin
 
double m_zMax
 
double m_zoom
 
bool m_zoomed
 
bool m_straightZoom
 

Detailed Description

Definition at line 49 of file layercache.h.

Member Typedef Documentation

◆ CacheTree

typedef QuadTree<std::set<int32_t> > FIFE::LayerCache::CacheTree

Definition at line 51 of file layercache.h.

◆ RenderEntryUpdate

typedef uint8_t FIFE::LayerCache::RenderEntryUpdate
private

Definition at line 74 of file layercache.h.

Member Enumeration Documentation

◆ RenderEntryUpdateType

Enumerator
EntryNoneUpdate 
EntryVisualUpdate 
EntryPositionUpdate 
EntryFullUpdate 

Definition at line 68 of file layercache.h.

Constructor & Destructor Documentation

◆ LayerCache()

FIFE::LayerCache::LayerCache ( Camera camera)

◆ ~LayerCache()

FIFE::LayerCache::~LayerCache ( )

Definition at line 192 of file layercache.cpp.

Member Function Documentation

◆ addInstance()

◆ collect()

void FIFE::LayerCache::collect ( const Rect viewport,
std::vector< int32_t > &  indices 
)
private

◆ fullCoordinateUpdate()

◆ fullUpdate()

◆ getCacheImage()

ImagePtr FIFE::LayerCache::getCacheImage ( )

Definition at line 806 of file layercache.cpp.

Referenced by FIFE::Camera::renderStaticLayer().

+ Here is the caller graph for this function:

◆ removeInstance()

void FIFE::LayerCache::removeInstance ( Instance instance)

Definition at line 280 of file layercache.cpp.

References FIFE::RenderItem::reset().

Referenced by FIFE::CacheLayerChangeListener::onInstanceDelete().

+ Here is the caller graph for this function:

◆ reset()

void FIFE::LayerCache::reset ( )
private

Definition at line 219 of file layercache.cpp.

◆ setCacheImage()

void FIFE::LayerCache::setCacheImage ( ImagePtr  image)

Definition at line 810 of file layercache.cpp.

Referenced by FIFE::Camera::renderStaticLayer().

+ Here is the caller graph for this function:

◆ setLayer()

void FIFE::LayerCache::setLayer ( Layer layer)

◆ sortRenderList()

void FIFE::LayerCache::sortRenderList ( RenderList renderlist)
private

◆ update()

◆ updateEntries()

◆ updateInstance()

◆ updatePosition()

◆ updateScreenCoordinate()

void FIFE::LayerCache::updateScreenCoordinate ( RenderItem item,
bool  changedZoom = true 
)
inlineprivate

◆ updateVisual()

Member Data Documentation

◆ m_cacheImage

ImagePtr FIFE::LayerCache::m_cacheImage
private

Definition at line 105 of file layercache.h.

◆ m_camera

Camera* FIFE::LayerCache::m_camera
private

Definition at line 101 of file layercache.h.

◆ m_entries

std::vector<Entry*> FIFE::LayerCache::m_entries
private

Definition at line 108 of file layercache.h.

◆ m_entriesToUpdate

std::set<int32_t> FIFE::LayerCache::m_entriesToUpdate
private

Definition at line 110 of file layercache.h.

◆ m_freeEntries

std::deque<int32_t> FIFE::LayerCache::m_freeEntries
private

Definition at line 111 of file layercache.h.

◆ m_instance_map

std::map<Instance*, int32_t> FIFE::LayerCache::m_instance_map
private

Definition at line 107 of file layercache.h.

◆ m_layer

Layer* FIFE::LayerCache::m_layer
private

Definition at line 102 of file layercache.h.

◆ m_layerObserver

CacheLayerChangeListener* FIFE::LayerCache::m_layerObserver
private

Definition at line 103 of file layercache.h.

◆ m_needSorting

bool FIFE::LayerCache::m_needSorting
private

Definition at line 113 of file layercache.h.

◆ m_renderItems

std::vector<RenderItem*> FIFE::LayerCache::m_renderItems
private

Definition at line 109 of file layercache.h.

◆ m_straightZoom

bool FIFE::LayerCache::m_straightZoom
private

Definition at line 119 of file layercache.h.

◆ m_tree

CacheTree* FIFE::LayerCache::m_tree
private

Definition at line 104 of file layercache.h.

◆ m_zMax

double FIFE::LayerCache::m_zMax
private

Definition at line 115 of file layercache.h.

◆ m_zMin

double FIFE::LayerCache::m_zMin
private

Definition at line 114 of file layercache.h.

◆ m_zoom

double FIFE::LayerCache::m_zoom
private

Definition at line 117 of file layercache.h.

◆ m_zoomed

bool FIFE::LayerCache::m_zoomed
private

Definition at line 118 of file layercache.h.


The documentation for this class was generated from the following files: