Cocos2d-x  v4
Director Class Reference

Class that creates and handles the main Window and manages how and when to execute the Scenes. More...

Inherits Ref.

Public Types

enum  Projection { _2D, _3D, CUSTOM, DEFAULT = _3D }
 Possible OpenGL projections used by director. More...
 

Public Member Functions

 Director ()
 @js ctor
 
 ~Director ()
 @js NA @lua NA
 
ScenegetRunningScene ()
 Gets current running Scene. More...
 
float getAnimationInterval ()
 Gets the FPS value.
 
void setAnimationInterval (float interval)
 Sets the FPS value. More...
 
bool isDisplayStats ()
 Whether or not displaying the FPS on the bottom-left corner of the screen.
 
void setDisplayStats (bool displayStats)
 Display the FPS on the bottom-left corner of the screen.
 
float getSecondsPerFrame ()
 Get seconds per frame.
 
GLViewgetOpenGLView ()
 Get the GLView. More...
 
void setOpenGLView (GLView *openGLView)
 Sets the GLView. More...
 
bool isNextDeltaTimeZero ()
 Whether or not _nextDeltaTimeZero is set to 0.
 
void setNextDeltaTimeZero (bool nextDeltaTimeZero)
 Sets the delta time between current frame and next frame is 0. More...
 
bool isPaused ()
 Whether or not the Director is paused.
 
unsigned int getTotalFrames ()
 How many frames were called since the director started.
 
Projection getProjection ()
 Gets an OpenGL projection. More...
 
void setProjection (Projection projection)
 Sets OpenGL projection.
 
void setViewport ()
 Sets the glViewport.
 
bool isSendCleanupToScene ()
 Whether or not the replaced scene will receive the cleanup message. More...
 
NodegetNotificationNode () const
 This object will be visited after the main scene is visited. More...
 
void setNotificationNode (Node *node)
 Sets the notification node. More...
 
const Size & getWinSize () const
 Returns the size of the OpenGL view in points.
 
Size getWinSizeInPixels () const
 Returns the size of the OpenGL view in pixels.
 
Size getVisibleSize () const
 Returns visible size of the OpenGL view in points. More...
 
Vec2 getVisibleOrigin () const
 Returns visible origin coordinate of the OpenGL view in points.
 
Rect getSafeAreaRect () const
 Returns safe area rectangle of the OpenGL view in points.
 
Vec2 convertToGL (const Vec2 &point)
 Converts a screen coordinate to an OpenGL coordinate. More...
 
Vec2 convertToUI (const Vec2 &point)
 Converts an OpenGL coordinate to a screen coordinate. More...
 
float getZEye () const
 Gets the distance between camera and near clipping frame. More...
 
void runWithScene (Scene *scene)
 Enters the Director's main loop with the given Scene. More...
 
void pushScene (Scene *scene)
 Suspends the execution of the running scene, pushing it on the stack of suspended scenes. More...
 
void popScene ()
 Pops out a scene from the stack. More...
 
void popToRootScene ()
 Pops out all scenes from the stack until the root scene in the queue. More...
 
void popToSceneStackLevel (int level)
 Pops out all scenes from the stack until it reaches level. More...
 
void replaceScene (Scene *scene)
 Replaces the running scene with a new one. More...
 
void end ()
 Ends the execution, releases the running scene. More...
 
void pause ()
 Pauses the running scene. More...
 
void resume ()
 Resumes the paused scene. More...
 
void stopAnimation ()
 Stops the animation. More...
 
void startAnimation ()
 The main loop is triggered again. More...
 
void drawScene ()
 Draw the scene. More...
 
void purgeCachedData ()
 Removes all cocos2d cached data. More...
 
void setDefaultValues ()
 Sets the default values based on the Configuration info.
 
void setGLDefaultValues ()
 Sets the OpenGL default values. More...
 
void setClearColor (const Color4F &clearColor)
 Sets clear values for the color buffers, value range of each element is [0.0, 1.0]. More...
 
void mainLoop (float dt)
 Invoke main loop with delta time. More...
 
void setContentScaleFactor (float scaleFactor)
 The size in pixels of the surface. More...
 
float getContentScaleFactor () const
 Gets content scale factor. More...
 
SchedulergetScheduler () const
 Gets the Scheduler associated with this director. More...
 
void setScheduler (Scheduler *scheduler)
 Sets the Scheduler associated with this director. More...
 
ActionManagergetActionManager () const
 Gets the ActionManager associated with this director. More...
 
void setActionManager (ActionManager *actionManager)
 Sets the ActionManager associated with this director. More...
 
EventDispatchergetEventDispatcher () const
 Gets the EventDispatcher associated with this director. More...
 
void setEventDispatcher (EventDispatcher *dispatcher)
 Sets the EventDispatcher associated with this director. More...
 
Renderer * getRenderer () const
 Returns the Renderer associated with this director. More...
 
Console * getConsole () const
 Returns the Console associated with this director. More...
 
float getFrameRate () const
 Gets Frame Rate. More...
 
void pushMatrix (MATRIX_STACK_TYPE type)
 Clones a specified type matrix and put it to the top of specified type of matrix stack. More...
 
void popMatrix (MATRIX_STACK_TYPE type)
 Pops the top matrix of the specified type of matrix stack. More...
 
void loadIdentityMatrix (MATRIX_STACK_TYPE type)
 Adds an identity matrix to the top of specified type of matrix stack. More...
 
void loadMatrix (MATRIX_STACK_TYPE type, const Mat4 &mat)
 Adds a matrix to the top of specified type of matrix stack. More...
 
void multiplyMatrix (MATRIX_STACK_TYPE type, const Mat4 &mat)
 Multiplies a matrix to the top of specified type of matrix stack. More...
 
const Mat4getMatrix (MATRIX_STACK_TYPE type) const
 Gets the top matrix of specified type of matrix stack. More...
 
void resetMatrixStack ()
 Clear all types of matrix stack, and add identity matrix to these matrix stacks. More...
 
const std::thread::id & getCocos2dThreadId () const
 returns the cocos2d thread id. More...
 
bool isValid () const
 returns whether or not the Director is in a valid state
 
- Public Member Functions inherited from Ref
void retain ()
 Retains the ownership. More...
 
void release ()
 Releases the ownership immediately. More...
 
Refautorelease ()
 Releases the ownership sometime soon automatically. More...
 
unsigned int getReferenceCount () const
 Returns the Ref's current reference count. More...
 
virtual ~Ref ()
 Destructor. More...
 

Static Public Member Functions

static DirectorgetInstance ()
 Returns a shared instance of the director. More...
 

Static Public Attributes

static const char * EVENT_BEFORE_SET_NEXT_SCENE
 Director will trigger an event before set next scene.
 
static const char * EVENT_AFTER_SET_NEXT_SCENE
 Director will trigger an event after set next scene.
 
static const char * EVENT_PROJECTION_CHANGED
 Director will trigger an event when projection type is changed.
 
static const char * EVENT_BEFORE_UPDATE
 Director will trigger an event before Schedule::update() is invoked.
 
static const char * EVENT_AFTER_UPDATE
 Director will trigger an event after Schedule::update() is invoked.
 
static const char * EVENT_RESET
 Director will trigger an event while resetting Director.
 
static const char * EVENT_AFTER_VISIT
 Director will trigger an event after Scene::render() is invoked.
 
static const char * EVENT_AFTER_DRAW
 Director will trigger an event after a scene is drawn, the data is sent to GPU.
 
static const char * EVENT_BEFORE_DRAW
 Director will trigger an event before a scene is drawn, right after clear.
 

Additional Inherited Members

- Public Attributes inherited from Ref
unsigned int _ID
 object id, ScriptSupport need public _ID
 
int _luaID
 Lua reference id.
 
void * _scriptObject
 scriptObject, support for swift
 
bool _rooted
 When true, it means that the object was already rooted.
 

Detailed Description

Class that creates and handles the main Window and manages how and when to execute the Scenes.

The Director is also responsible for:

  • initializing the OpenGL context
  • setting the OpenGL buffer depth (default one is 0-bit)
  • setting the projection (default one is 3D)

Since the Director is a singleton, the standard way to use it is by calling: _ Director::getInstance()->methodName();

Member Enumeration Documentation

◆ Projection

enum Projection
strong

Possible OpenGL projections used by director.

Enumerator
_2D 

Sets a 2D projection (orthogonal projection).

_3D 

Sets a 3D projection with a fovy=60, znear=0.5f and zfar=1500.

CUSTOM 

It calls "updateProjection" on the projection delegate.

DEFAULT 

Default projection is 3D projection.

Member Function Documentation

◆ getInstance()

static Director* getInstance ( )
static

Returns a shared instance of the director.

@js _getInstance

◆ getRunningScene()

Scene* getRunningScene ( )
inline

Gets current running Scene.

Director can only run one Scene at a time.

◆ setAnimationInterval()

void setAnimationInterval ( float  interval)

Sets the FPS value.

FPS = 1/interval.

◆ getOpenGLView()

GLView* getOpenGLView ( )
inline

Get the GLView.

@lua NA

◆ setOpenGLView()

void setOpenGLView ( GLView openGLView)

Sets the GLView.

@lua NA

◆ setNextDeltaTimeZero()

void setNextDeltaTimeZero ( bool  nextDeltaTimeZero)

Sets the delta time between current frame and next frame is 0.

This value will be used in Schedule, and will affect all functions that are using frame delta time, such as Actions. This value will take effect only one time.

◆ getProjection()

Projection getProjection ( )
inline

Gets an OpenGL projection.

Since
v0.8.2 @lua NA

◆ isSendCleanupToScene()

bool isSendCleanupToScene ( )
inline

Whether or not the replaced scene will receive the cleanup message.

If the new scene is pushed, then the old scene won't receive the "cleanup" message. If the new scene replaces the old one, the it will receive the "cleanup" message.

Since
v0.99.0

◆ getNotificationNode()

Node* getNotificationNode ( ) const
inline

This object will be visited after the main scene is visited.

This object MUST implement the "visit" function. Useful to hook a notification object, like Notifications (http://github.com/manucorporat/CCNotifications)

Since
v0.99.5

◆ setNotificationNode()

void setNotificationNode ( Node node)

Sets the notification node.

See also
Director::getNotificationNode()

◆ getVisibleSize()

Size getVisibleSize ( ) const

Returns visible size of the OpenGL view in points.

The value is equal to Director::getWinSize() if don't invoke GLView::setDesignResolutionSize().

◆ convertToGL()

Vec2 convertToGL ( const Vec2 point)

Converts a screen coordinate to an OpenGL coordinate.

Useful to convert (multi) touch coordinates to the current layout (portrait or landscape).

◆ convertToUI()

Vec2 convertToUI ( const Vec2 point)

Converts an OpenGL coordinate to a screen coordinate.

Useful to convert node points to window points for calls such as glScissor.

◆ getZEye()

float getZEye ( ) const

Gets the distance between camera and near clipping frame.

It is correct for default camera that near clipping frame is same as the screen.

◆ runWithScene()

void runWithScene ( Scene scene)

Enters the Director's main loop with the given Scene.

Call it to run only your FIRST scene. Don't call it if there is already a running scene.

It will call pushScene: and then it will call startAnimation @js NA

◆ pushScene()

void pushScene ( Scene scene)

Suspends the execution of the running scene, pushing it on the stack of suspended scenes.

The new scene will be executed. Try to avoid big stacks of pushed scenes to reduce memory allocation. ONLY call it if there is a running scene.

◆ popScene()

void popScene ( )

Pops out a scene from the stack.

This scene will replace the running one. The running scene will be deleted. If there are no more scenes in the stack the execution is terminated. ONLY call it if there is a running scene.

◆ popToRootScene()

void popToRootScene ( )

Pops out all scenes from the stack until the root scene in the queue.

This scene will replace the running one. Internally it will call popToSceneStackLevel(1).

◆ popToSceneStackLevel()

void popToSceneStackLevel ( int  level)

Pops out all scenes from the stack until it reaches level.

If level is 0, it will end the director. If level is 1, it will pop all scenes until it reaches to root scene. If level is <= than the current stack level, it won't do anything.

◆ replaceScene()

void replaceScene ( Scene scene)

Replaces the running scene with a new one.

The running scene is terminated. ONLY call it if there is a running scene. @js NA

◆ end()

void end ( )

Ends the execution, releases the running scene.

@lua endToLua

◆ pause()

void pause ( )

Pauses the running scene.

The running scene will be drawed but all scheduled timers will be paused. While paused, the draw rate will be 4 FPS to reduce CPU consumption.

◆ resume()

void resume ( )

Resumes the paused scene.

The scheduled timers will be activated again. The "delta time" will be 0 (as if the game wasn't paused).

◆ stopAnimation()

void stopAnimation ( )

Stops the animation.

Nothing will be drawn. The main loop won't be triggered anymore. If you don't want to pause your animation call [pause] instead.

◆ startAnimation()

void startAnimation ( )

The main loop is triggered again.

Call this function only if [stopAnimation] was called earlier.

Warning
Don't call this function to start the main loop. To run the main loop call runWithScene.

◆ drawScene()

void drawScene ( )

Draw the scene.

This method is called every frame. Don't call it manually.

◆ purgeCachedData()

void purgeCachedData ( )

Removes all cocos2d cached data.

It will purge the TextureCache, SpriteFrameCache, LabelBMFont cache

Since
v0.99.3

◆ setGLDefaultValues()

void setGLDefaultValues ( )

Sets the OpenGL default values.

It will enable alpha blending, disable depth test. @js NA

◆ setClearColor()

void setClearColor ( const Color4F clearColor)

Sets clear values for the color buffers, value range of each element is [0.0, 1.0].

@js NA

◆ mainLoop()

void mainLoop ( float  dt)

Invoke main loop with delta time.

Then calculateDeltaTime can just use the delta time directly. The delta time paseed may include vsync time. See issue #17806

Since
3.16

◆ setContentScaleFactor()

void setContentScaleFactor ( float  scaleFactor)

The size in pixels of the surface.

It could be different than the screen size. High-res devices might have a higher surface size than the screen size. Only available when compiled using SDK >= 4.0.

Since
v0.99.4

◆ getContentScaleFactor()

float getContentScaleFactor ( ) const
inline

Gets content scale factor.

See also
Director::setContentScaleFactor()

◆ getScheduler()

Scheduler* getScheduler ( ) const
inline

Gets the Scheduler associated with this director.

Since
v2.0

◆ setScheduler()

void setScheduler ( Scheduler scheduler)

Sets the Scheduler associated with this director.

Since
v2.0

◆ getActionManager()

ActionManager* getActionManager ( ) const
inline

Gets the ActionManager associated with this director.

Since
v2.0

◆ setActionManager()

void setActionManager ( ActionManager actionManager)

Sets the ActionManager associated with this director.

Since
v2.0

◆ getEventDispatcher()

EventDispatcher* getEventDispatcher ( ) const
inline

Gets the EventDispatcher associated with this director.

Since
v3.0 @js NA

◆ setEventDispatcher()

void setEventDispatcher ( EventDispatcher dispatcher)

Sets the EventDispatcher associated with this director.

Since
v3.0 @js NA

◆ getRenderer()

Renderer* getRenderer ( ) const
inline

Returns the Renderer associated with this director.

Since
v3.0

◆ getConsole()

Console* getConsole ( ) const
inline

Returns the Console associated with this director.

Since
v3.0 @js NA

◆ getFrameRate()

float getFrameRate ( ) const
inline

Gets Frame Rate.

@js NA

◆ pushMatrix()

void pushMatrix ( MATRIX_STACK_TYPE  type)

Clones a specified type matrix and put it to the top of specified type of matrix stack.

@js NA

◆ popMatrix()

void popMatrix ( MATRIX_STACK_TYPE  type)

Pops the top matrix of the specified type of matrix stack.

@js NA

◆ loadIdentityMatrix()

void loadIdentityMatrix ( MATRIX_STACK_TYPE  type)

Adds an identity matrix to the top of specified type of matrix stack.

@js NA

◆ loadMatrix()

void loadMatrix ( MATRIX_STACK_TYPE  type,
const Mat4 mat 
)

Adds a matrix to the top of specified type of matrix stack.

Parameters
typeMatrix type.
matThe matrix that to be added. @js NA

◆ multiplyMatrix()

void multiplyMatrix ( MATRIX_STACK_TYPE  type,
const Mat4 mat 
)

Multiplies a matrix to the top of specified type of matrix stack.

Parameters
typeMatrix type.
matThe matrix that to be multiplied. @js NA

◆ getMatrix()

const Mat4& getMatrix ( MATRIX_STACK_TYPE  type) const

Gets the top matrix of specified type of matrix stack.

@js NA

◆ resetMatrixStack()

void resetMatrixStack ( )

Clear all types of matrix stack, and add identity matrix to these matrix stacks.

@js NA

◆ getCocos2dThreadId()

const std::thread::id& getCocos2dThreadId ( ) const
inline

returns the cocos2d thread id.

Useful to know if certain code is already running on the cocos2d thread


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