Пример #1
0
CameraAttachmentPtr CameraAttachment::New( EventThreadServices& eventThreadServices, const SceneGraph::Node& parentNode )
{
  CameraAttachmentPtr attachment( new CameraAttachment( eventThreadServices ) );

  // Transfer object ownership of scene-object to message
  SceneGraph::CameraAttachment* sceneObject = CreateSceneObject();
  AttachToNodeMessage( eventThreadServices.GetUpdateManager(), parentNode, sceneObject );

  // Keep raw pointer for message passing
  attachment->mSceneObject = sceneObject;

  return attachment;
}
Пример #2
0
LightAttachmentPtr LightAttachment::New( const SceneGraph::Node& parentNode )
{
  StagePtr stage = Stage::GetCurrent();

  LightAttachmentPtr attachment( new LightAttachment( *stage ) );

  // Transfer object ownership of scene-object to message
  SceneGraph::LightAttachment* sceneObject = SceneGraph::LightAttachment::New();
  sceneObject->SetLight( attachment->mCachedLight );
  AttachToNodeMessage( stage->GetUpdateManager(), parentNode, sceneObject );

  // Keep raw pointer for message passing
  attachment->mSceneObject = sceneObject;

  return attachment;
}
Пример #3
0
TextAttachmentPtr TextAttachment::New( const SceneGraph::Node& parentNode, const TextArray& text, FontPointer font, bool isLeftToRight )
{
  StagePtr stage = Stage::GetCurrent();

  TextAttachmentPtr attachment( new TextAttachment( *stage ) );

  // Second-phase construction

  attachment->mFont = font;
  attachment->mText = text;
  attachment->mIsLeftToRight = isLeftToRight;

  // Transfer object ownership of scene-object to message
  SceneGraph::TextAttachment* sceneObject = SceneGraph::TextAttachment::New();

  AttachToNodeMessage( stage->GetUpdateManager(), parentNode, sceneObject );

  // Keep raw pointer for message passing
  attachment->mSceneObject = sceneObject;

  attachment->SetSmoothEdge(attachment->mSmoothing);      // adjust smoothedge for font weight

  return attachment;
}