Ion
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ion::gfxutils::Frame Class Reference

Frame manages an application-defined frame of execution. More...

#include "frame.h"

Inheritance diagram for ion::gfxutils::Frame:
Collaboration diagram for ion::gfxutils::Frame:

Public Types

typedef std::function< void(const
Frame &frame)> 
Callback
 Callback that can be invoked at the beginning or end of a frame. More...
 

Public Member Functions

 Frame ()
 The constructor initializes the frame counter to 0. More...
 
uint64 GetCounter () const
 Gets/resets the frame counter. More...
 
void ResetCounter ()
 
void Begin ()
 Begins a new frame. More...
 
void End ()
 Ends the current frame. More...
 
bool IsInFrame () const
 Returns true if Begin() was called and End() was not. More...
 
void AddPreFrameCallback (const std::string &key, const Callback &callback)
 Adds a callback to be invoked when Begin() or End() is called. More...
 
void AddPostFrameCallback (const std::string &key, const Callback &callback)
 
bool RemovePreFrameCallback (const std::string &key)
 Removes a callback added previously with AddPreFrameCallback() or AddPostFrameCallback(), identified by the key. More...
 
bool RemovePostFrameCallback (const std::string &key)
 
const AllocatorPtr & GetAllocator () const
 Returns the Allocator that was used for the instance. More...
 
const AllocatorPtr & GetNonNullAllocator () const
 Return our allocator, or the default allocator if the instance was declared on the stack. More...
 
const AllocatorPtr & GetAllocatorForLifetime (AllocationLifetime lifetime) const
 Convenience function that returns the Allocator to use to allocate an object with a specific lifetime. More...
 
void * operator new (size_t size)
 The standard no-parameter new operator uses the default Allocator. More...
 
void * operator new (size_t size, AllocationLifetime lifetime)
 This overloaded version of the new operator uses the AllocationManager's default Allocator for the specified lifetime. More...
 
void * operator new (size_t size, const AllocatorPtr &allocator)
 This overloaded version of the new operator takes the Allocator to use directly as a parameter. More...
 
void * operator new (size_t size, const AllocatorPtr &allocator, void *ptr)
 Special operator new for using placement new with Allocatables. More...
 
void * operator new (size_t size, void *ptr)
 The placement new operator is defined conventionally. More...
 
void operator delete (void *ptr)
 Define the delete operator to use specialized functions dealing with an Allocator. More...
 
void operator delete (void *ptr, AllocationLifetime lifetime)
 Windows requires these (or it issues C4291 warnings). More...
 
void operator delete (void *ptr, const AllocatorPtr &allocator)
 
void operator delete (void *ptr, void *ptr2)
 The placement delete operator does nothing, as usual. More...
 
int GetRefCount () const
 GetRefCount() is part of the interface necessary for SharedPtr. More...
 

Detailed Description

Frame manages an application-defined frame of execution.

It can be used to install pre- and post-frame callbacks for tracing, timing, and so on.

Definition at line 33 of file frame.h.

Member Typedef Documentation

typedef std::function<void(const Frame& frame)> ion::gfxutils::Frame::Callback

Callback that can be invoked at the beginning or end of a frame.

It is passed a pointer to the Frame instance.

Definition at line 37 of file frame.h.

Constructor & Destructor Documentation

ion::gfxutils::Frame::Frame ( )

The constructor initializes the frame counter to 0.

Definition at line 27 of file frame.cc.

Member Function Documentation

void ion::gfxutils::Frame::AddPostFrameCallback ( const std::string &  key,
const Callback callback 
)

Definition at line 66 of file frame.cc.

void ion::gfxutils::Frame::AddPreFrameCallback ( const std::string &  key,
const Callback callback 
)

Adds a callback to be invoked when Begin() or End() is called.

The callback is identified by the passed key.

Definition at line 60 of file frame.cc.

void ion::gfxutils::Frame::Begin ( )

Begins a new frame.

All pre-frame callbacks are invoked at this point. This does nothing but generate an error message if Begin() was already called with no matching End().

Definition at line 35 of file frame.cc.

References ion::port::ERROR, and LOG.

void ion::gfxutils::Frame::End ( )

Ends the current frame.

All post-frame callbacks are invoked at this point and the frame counter is incremented by 1. This does nothing but generate an error message if Begin() was not called.

Definition at line 47 of file frame.cc.

References ion::port::ERROR, and LOG.

const AllocatorPtr& ion::base::Allocatable::GetAllocator ( ) const
inlineinherited

Returns the Allocator that was used for the instance.

This will be NULL if the instance was declared on the stack or created with normal placement new.

Definition at line 68 of file allocatable.h.

References allocator_.

Referenced by ion::base::DataContainer::CreateAndCopy(), ion::text::DynamicFontImage::FindContainingImageDataIndex(), and ion::text::DynamicFontImage::FindImageDataIndex().

const AllocatorPtr& ion::base::Allocatable::GetAllocatorForLifetime ( AllocationLifetime  lifetime) const
inlineinherited
uint64 ion::gfxutils::Frame::GetCounter ( ) const
inline

Gets/resets the frame counter.

The counter is incremented when End() is called.

Definition at line 44 of file frame.h.

const AllocatorPtr& ion::base::Allocatable::GetNonNullAllocator ( ) const
inlineinherited

Return our allocator, or the default allocator if the instance was declared on the stack.

Definition at line 72 of file allocatable.h.

References allocator_, and ion::base::AllocationManager::GetNonNullAllocator().

int ion::base::Shareable::GetRefCount ( ) const
inlineinherited

GetRefCount() is part of the interface necessary for SharedPtr.

Definition at line 34 of file shareable.h.

Referenced by ion::base::Notifier::RemoveReceiver().

bool ion::gfxutils::Frame::IsInFrame ( ) const
inline

Returns true if Begin() was called and End() was not.

Definition at line 58 of file frame.h.

void ion::base::Allocatable::operator delete ( void *  ptr)
inlineinherited

Define the delete operator to use specialized functions dealing with an Allocator.

Definition at line 109 of file allocatable.h.

void ion::base::Allocatable::operator delete ( void *  ptr,
AllocationLifetime  lifetime 
)
inlineinherited

Windows requires these (or it issues C4291 warnings).

Definition at line 112 of file allocatable.h.

void ion::base::Allocatable::operator delete ( void *  ptr,
const AllocatorPtr allocator 
)
inlineinherited

Definition at line 113 of file allocatable.h.

void ion::base::Allocatable::operator delete ( void *  ptr,
void *  ptr2 
)
inlineinherited

The placement delete operator does nothing, as usual.

Definition at line 118 of file allocatable.h.

void* ion::base::Allocatable::operator new ( size_t  size)
inlineinherited

The standard no-parameter new operator uses the default Allocator.

Definition at line 84 of file allocatable.h.

void* ion::base::Allocatable::operator new ( size_t  size,
AllocationLifetime  lifetime 
)
inlineinherited

This overloaded version of the new operator uses the AllocationManager's default Allocator for the specified lifetime.

Definition at line 88 of file allocatable.h.

void* ion::base::Allocatable::operator new ( size_t  size,
const AllocatorPtr allocator 
)
inlineinherited

This overloaded version of the new operator takes the Allocator to use directly as a parameter.

If the Allocator pointer is NULL, this uses the default Allocator.

Definition at line 95 of file allocatable.h.

void* ion::base::Allocatable::operator new ( size_t  size,
const AllocatorPtr allocator,
void *  ptr 
)
inlineinherited

Special operator new for using placement new with Allocatables.

Definition at line 100 of file allocatable.h.

void* ion::base::Allocatable::operator new ( size_t  size,
void *  ptr 
)
inlineinherited

The placement new operator is defined conventionally.

Definition at line 105 of file allocatable.h.

bool ion::gfxutils::Frame::RemovePostFrameCallback ( const std::string &  key)

Definition at line 81 of file frame.cc.

bool ion::gfxutils::Frame::RemovePreFrameCallback ( const std::string &  key)

Removes a callback added previously with AddPreFrameCallback() or AddPostFrameCallback(), identified by the key.

These do nothing but return false if the callback was not found.

Definition at line 72 of file frame.cc.

void ion::gfxutils::Frame::ResetCounter ( )
inline

Definition at line 45 of file frame.h.


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