X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Frender%2Fcommon%2Frender-instruction.h;h=f40ec04fc7527eab361e3757ccec635ef9289fd9;hb=d353bae63798f48237dc24c078c2e8cb2aa0bc62;hp=e0c2c12f6c2be75edc580bf0defc1d44f47d857f;hpb=7c6f8ed43521c52d6cc46a7e3e3e40069514f818;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/render/common/render-instruction.h b/dali/internal/render/common/render-instruction.h index e0c2c12..f40ec04 100644 --- a/dali/internal/render/common/render-instruction.h +++ b/dali/internal/render/common/render-instruction.h @@ -1,8 +1,8 @@ -#ifndef __DALI_INTERNAL_SCENE_GRAPH_RENDER_INSTRUCTION_H__ -#define __DALI_INTERNAL_SCENE_GRAPH_RENDER_INSTRUCTION_H__ +#ifndef DALI_INTERNAL_SCENE_GRAPH_RENDER_INSTRUCTION_H +#define DALI_INTERNAL_SCENE_GRAPH_RENDER_INSTRUCTION_H /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,8 +21,10 @@ // INTERNAL INCLUDES #include #include -#include +#include #include +#include +#include namespace Dali { @@ -30,10 +32,13 @@ namespace Dali namespace Internal { -namespace SceneGraph +namespace Render { class RenderTracker; -class CameraAttachment; +} + +namespace SceneGraph +{ /** * A set of rendering instructions consisting of: @@ -79,7 +84,7 @@ public: * Return the renderlist at given index * @pre index is inside the valid range of initialized lists * @param index of list to return - * @return pointer to the renderlist + * @return pointer to the renderlist, or null if the index is out of bounds. */ const RenderList* GetRenderList( RenderListContainer::SizeType index ) const; @@ -88,13 +93,13 @@ public: * render-lists are cleared but not released, while matrices and other settings reset in * preparation for building a set of instructions for the renderer. * - * @param[in] cameraAttachment to use to get view and projection matrices. + * @param[in] camera to use to get view and projection matrices. * @param[in] offscreenId A resource Id of an off-screen render target, or 0 * @param[in] viewport A pointer to a viewport, of NULL. * @param[in] clearColor A pointer to a color to clear with, or NULL if no clear is required. */ - void Reset( CameraAttachment* cameraAttachment, - unsigned int offscreenId, + void Reset( Camera* camera, + Render::FrameBuffer* frameBuffer, const Viewport* viewport, const Vector4* clearColor ); @@ -106,7 +111,7 @@ public: const Matrix* GetViewMatrix( BufferIndex index ) const { // inlined as this is called once per frame per render instruction - return &mCameraAttachment->GetViewMatrix( index ); + return &mCamera->GetViewMatrix( index ); } /** @@ -117,7 +122,12 @@ public: const Matrix* GetProjectionMatrix( BufferIndex index ) const { // inlined as this is called once per frame per render instruction - return &mCameraAttachment->GetProjectionMatrix( index ); + return &mCamera->GetFinalProjectionMatrix( index ); + } + // for reflection effect + const Camera* GetCamera() const + { + return mCamera; } private: @@ -127,21 +137,23 @@ private: // Undefined RenderInstruction& operator=(const RenderInstruction& rhs); -public: // Data, TODO hide these +public: // Data - RenderTracker* mRenderTracker; ///< Pointer to an optional tracker object (not owned) + Render::RenderTracker* mRenderTracker; ///< Pointer to an optional tracker object (not owned) Viewport mViewport; ///< Optional viewport Vector4 mClearColor; ///< Optional color to clear with bool mIsViewportSet:1; ///< Flag to determine whether the viewport is set - bool mIsClearColorSet:1; ///< Flag to determine whether the clear-color is set - bool mCullMode:1; ///< True if renderers should be frustum culled + bool mIsClearColorSet:1; ///< Flag to determine whether the clearColor is set + bool mIgnoreRenderToFbo:1; ///< Whether to ignore the render to FBO option (used to measure the performance above 60 fps) + + Render::FrameBuffer* mFrameBuffer; - unsigned int mOffscreenTextureId; ///< Optional offscreen target + Context* mContext; ///< The context holding the GL state of rendering private: // Data - CameraAttachment* mCameraAttachment; ///< camera that is used + Camera* mCamera; ///< camera that is used RenderListContainer mRenderLists; ///< container of all render lists RenderListContainer::SizeType mNextFreeRenderList; ///< index for the next free render list @@ -153,4 +165,4 @@ private: // Data } // namespace Dali -#endif // __DALI_INTERNAL_SCENE_GRAPH_RENDER_INSTRUCTION_H__ +#endif // DALI_INTERNAL_SCENE_GRAPH_RENDER_INSTRUCTION_H