FIFE
be64c707dea6b3250bd4355bf5c825d25920087d
|
#include <layercache.h>
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 | |
Camera * | m_camera |
Layer * | m_layer |
CacheLayerChangeListener * | m_layerObserver |
CacheTree * | m_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 |
Definition at line 49 of file layercache.h.
typedef QuadTree<std::set<int32_t> > FIFE::LayerCache::CacheTree |
Definition at line 51 of file layercache.h.
|
private |
Definition at line 74 of file layercache.h.
|
private |
Enumerator | |
---|---|
EntryNoneUpdate | |
EntryVisualUpdate | |
EntryPositionUpdate | |
EntryFullUpdate |
Definition at line 68 of file layercache.h.
FIFE::LayerCache::LayerCache | ( | Camera * | camera | ) |
Definition at line 174 of file layercache.cpp.
References FIFE::Math< T >::Equal(), FIFE::Camera::getZoom(), and FIFE::DynamicSingleton< RenderBackend >::instance().
FIFE::LayerCache::~LayerCache | ( | ) |
Definition at line 192 of file layercache.cpp.
void FIFE::LayerCache::addInstance | ( | Instance * | instance | ) |
Definition at line 244 of file layercache.cpp.
References FIFE::LayerCache::Entry::entryIndex, FIFE::LayerCache::Entry::forceUpdate, FIFE::LayerCache::Entry::instanceIndex, FIFE::LayerCache::Entry::node, FIFE::LayerCache::Entry::updateInfo, and FIFE::LayerCache::Entry::visible.
Referenced by FIFE::CacheLayerChangeListener::onInstanceCreate().
|
private |
|
private |
Definition at line 483 of file layercache.cpp.
References FIFE::LayerCache::Entry::entryIndex, FIFE::LayerCache::Entry::forceUpdate, FIFE::LayerCache::Entry::instanceIndex, FIFE::LayerCache::Entry::updateInfo, and FIFE::Camera::ZoomTransform.
|
private |
Definition at line 460 of file layercache.cpp.
References FIFE::LayerCache::Entry::entryIndex, FIFE::LayerCache::Entry::forceUpdate, FIFE::LayerCache::Entry::instanceIndex, FIFE::Camera::RotationTransform, and FIFE::LayerCache::Entry::updateInfo.
ImagePtr FIFE::LayerCache::getCacheImage | ( | ) |
Definition at line 806 of file layercache.cpp.
Referenced by FIFE::Camera::renderStaticLayer().
void FIFE::LayerCache::removeInstance | ( | Instance * | instance | ) |
Definition at line 280 of file layercache.cpp.
References FIFE::RenderItem::reset().
Referenced by FIFE::CacheLayerChangeListener::onInstanceDelete().
|
private |
Definition at line 219 of file layercache.cpp.
void FIFE::LayerCache::setCacheImage | ( | ImagePtr | image | ) |
Definition at line 810 of file layercache.cpp.
Referenced by FIFE::Camera::renderStaticLayer().
void FIFE::LayerCache::setLayer | ( | Layer * | layer | ) |
Definition at line 206 of file layercache.cpp.
References FIFE::Layer::addChangeListener(), and FIFE::CacheLayerChangeListener::CacheLayerChangeListener().
|
private |
Definition at line 752 of file layercache.cpp.
References FIFE::InstanceVisual::getStackPosition(), FIFE::SORTING_CAMERA, FIFE::SORTING_CAMERA_AND_LOCATION, and FIFE::SORTING_LOCATION.
void FIFE::LayerCache::update | ( | Camera::Transform | transform, |
RenderList & | renderlist | ||
) |
Definition at line 369 of file layercache.cpp.
References FIFE::_log, FIFE::RectType< T >::bottom(), FIFE::RenderItem::dimensions, FIFE::Math< T >::Equal(), FL_DBG, FIFE::LayerCache::Entry::forceUpdate, FIFE::RectType< T >::h, FIFE::RenderItem::image, FIFE::LayerCache::Entry::instanceIndex, FIFE::RectType< T >::intersects(), FIFE::Camera::NoneTransform, FIFE::RectType< T >::right(), FIFE::Camera::RotationTransform, FIFE::Camera::TiltTransform, FIFE::LayerCache::Entry::visible, FIFE::RectType< T >::w, FIFE::RectType< T >::x, FIFE::PointType3D< T >::x, FIFE::RectType< T >::y, FIFE::PointType3D< T >::y, and FIFE::Camera::ZTransform.
Referenced by FIFE::Camera::updateRenderLists().
|
private |
Definition at line 503 of file layercache.cpp.
References FIFE::RenderItem::dimensions, FIFE::LayerCache::Entry::forceUpdate, FIFE::RenderItem::image, FIFE::RenderItem::instance, FIFE::LayerCache::Entry::instanceIndex, FIFE::RectType< T >::intersects(), FIFE::LayerCache::Entry::updateInfo, and FIFE::LayerCache::Entry::visible.
void FIFE::LayerCache::updateInstance | ( | Instance * | instance | ) |
Definition at line 314 of file layercache.cpp.
References FIFE::LayerCache::Entry::entryIndex, FIFE::LayerCache::Entry::forceUpdate, FIFE::Instance::getChangeInfo(), FIFE::ICHANGE_ACTION, FIFE::ICHANGE_LOC, FIFE::ICHANGE_ROTATION, FIFE::ICHANGE_TRANSPARENCY, FIFE::ICHANGE_VISIBLE, FIFE::ICHANGE_VISUAL, FIFE::LayerCache::Entry::instanceIndex, and FIFE::LayerCache::Entry::updateInfo.
Referenced by FIFE::CacheLayerChangeListener::onLayerChanged().
|
private |
Definition at line 695 of file layercache.cpp.
References FIFE::RenderItem::bbox, FIFE::QuadNode< DataType, MinimumSize >::data(), FIFE::LayerCache::Entry::entryIndex, FIFE::QuadNode< DataType, MinimumSize >::find_container(), FIFE::Image::getHeight(), FIFE::Instance::getLocationRef(), FIFE::Location::getMapCoordinates(), FIFE::Image::getWidth(), FIFE::Image::getXShift(), FIFE::Image::getYShift(), FIFE::RectType< T >::h, FIFE::RenderItem::image, FIFE::RenderItem::instance, FIFE::LayerCache::Entry::instanceIndex, FIFE::LayerCache::Entry::node, FIFE::RenderItem::screenpoint, FIFE::RectType< T >::w, FIFE::RectType< T >::x, FIFE::PointType3D< T >::x, FIFE::RectType< T >::y, and FIFE::PointType3D< T >::y.
|
inlineprivate |
Definition at line 731 of file layercache.cpp.
References FIFE::RenderItem::bbox, FIFE::RenderItem::dimensions, FIFE::RectType< T >::h, FIFE::RenderItem::screenpoint, FIFE::RectType< T >::w, FIFE::RectType< T >::x, FIFE::PointType3D< T >::x, FIFE::RectType< T >::y, and FIFE::PointType3D< T >::y.
|
private |
Definition at line 562 of file layercache.cpp.
References FIFE::Instance::callOnActionFrame(), FIFE::RenderItem::currentFrame, FIFE::RenderItem::deleteOverlayData(), FIFE::RenderItem::facingAngle, FIFE::LayerCache::Entry::forceUpdate, FIFE::ImageManager::get(), FIFE::Animation::getActionFrame(), FIFE::Instance::getActionRuntime(), FIFE::ActionVisual::getAnimationOverlay(), FIFE::ActionVisual::getColorOverlay(), FIFE::OverlayColors::getColorOverlayAnimation(), FIFE::Instance::getCurrentAction(), FIFE::Object::getDefaultAction(), FIFE::Animation::getDuration(), FIFE::Animation::getFrameByTimestamp(), FIFE::Animation::getFrameCount(), FIFE::Animation::getFrameIndex(), FIFE::Image::getHeight(), FIFE::Instance::getObject(), FIFE::Instance::getRotation(), FIFE::RenderItem::getStaticImageIndexByAngle(), FIFE::InstanceVisual::getTransparency(), FIFE::Instance::getVisual(), FIFE::Image::getWidth(), FIFE::Image::getXShift(), FIFE::Image::getYShift(), FIFE::RenderItem::image, FIFE::RenderItem::instance, FIFE::DynamicSingleton< ImageManager >::instance(), FIFE::LayerCache::Entry::instanceIndex, FIFE::ActionVisual::isAnimationOverlay(), FIFE::ActionVisual::isColorOverlay(), FIFE::Object::isStatic(), FIFE::InstanceVisual::isVisible(), FIFE::RenderItem::setAnimationOverlay(), FIFE::RenderItem::setColorOverlay(), FIFE::OverlayColors::setColorOverlayImage(), FIFE::RenderItem::transparency, and FIFE::LayerCache::Entry::visible.
|
private |
Definition at line 105 of file layercache.h.
|
private |
Definition at line 101 of file layercache.h.
|
private |
Definition at line 108 of file layercache.h.
|
private |
Definition at line 110 of file layercache.h.
|
private |
Definition at line 111 of file layercache.h.
|
private |
Definition at line 107 of file layercache.h.
|
private |
Definition at line 102 of file layercache.h.
|
private |
Definition at line 103 of file layercache.h.
|
private |
Definition at line 113 of file layercache.h.
|
private |
Definition at line 109 of file layercache.h.
|
private |
Definition at line 119 of file layercache.h.
|
private |
Definition at line 104 of file layercache.h.
|
private |
Definition at line 115 of file layercache.h.
|
private |
Definition at line 114 of file layercache.h.
|
private |
Definition at line 117 of file layercache.h.
|
private |
Definition at line 118 of file layercache.h.