X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=dali%2Finternal%2Frender%2Fcommon%2Frender-manager.h;h=74215920b0ffb35e4c3891f8738ec4c683b61e9d;hb=66e7d2f6bcca8a495e126bc9fbcc1640c74b3c01;hp=5e48692ddee8b5057d5da688cd737d799197dd2e;hpb=4dfbc238a8f0f3aeb9de6a800aaea460972a6b40;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/render/common/render-manager.h b/dali/internal/render/common/render-manager.h index 5e48692..7421592 100644 --- a/dali/internal/render/common/render-manager.h +++ b/dali/internal/render/common/render-manager.h @@ -1,8 +1,8 @@ -#ifndef __DALI_INTERNAL_SCENE_GRAPH_RENDER_MANAGER_H__ -#define __DALI_INTERNAL_SCENE_GRAPH_RENDER_MANAGER_H__ +#ifndef DALI_INTERNAL_SCENE_GRAPH_RENDER_MANAGER_H +#define DALI_INTERNAL_SCENE_GRAPH_RENDER_MANAGER_H /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2019 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. @@ -33,6 +33,7 @@ namespace Integration { class GlAbstraction; class GlSyncAbstraction; +class GlContextHelperAbstraction; class RenderStatus; } @@ -72,13 +73,15 @@ public: /** * Construct a new RenderManager. - * @param[in] glAbstraction The GL abstraction used for rendering. - * @param[in] glSyncAbstraction The GL sync abstraction used fence sync creation/deletion. - * @param[in] depthBufferAvailable Whether the depth buffer is available - * @param[in] stencilBufferAvailable Whether the stencil buffer is available + * @param[in] glAbstraction The GL abstraction used for rendering. + * @param[in] glSyncAbstraction The GL sync abstraction used fence sync creation/deletion. + * @param[in] glContextHelperAbstraction The GL context helper abstraction for accessing GL context. + * @param[in] depthBufferAvailable Whether the depth buffer is available + * @param[in] stencilBufferAvailable Whether the stencil buffer is available */ static RenderManager* New( Integration::GlAbstraction& glAbstraction, Integration::GlSyncAbstraction& glSyncAbstraction, + Integration::GlContextHelperAbstraction& glContextHelperAbstraction, Integration::DepthBufferAvailable depthBufferAvailable, Integration::StencilBufferAvailable stencilBufferAvailable ); @@ -138,6 +141,12 @@ public: void SetDefaultSurfaceRect( const Rect& rect ); /** + * Returns the orintation for the default surface (probably the application window). + * @return Orientation for the surface. + */ + void SetDefaultSurfaceOrientation( int orientation ); + + /** * Add a Renderer to the render manager. * @param[in] renderer The renderer to add. * @post renderer is owned by RenderManager @@ -170,7 +179,7 @@ public: * @param[in] minFilterMode Filter mode to use when the texture is minificated * @param[in] magFilterMode Filter mode to use when the texture is magnified */ - void SetFilterMode( Render::Sampler* sampler, unsigned int minFilterMode, unsigned int magFilterMode ); + void SetFilterMode( Render::Sampler* sampler, uint32_t minFilterMode, uint32_t magFilterMode ); /** * Set wrapping mode for a sampler @@ -178,7 +187,7 @@ public: * @param[in] uWrapMode Wrap mode in the x direction * @param[in] vWrapMode Wrap mode in the y direction */ - void SetWrapMode( Render::Sampler* sampler, unsigned int rWrapMode, unsigned int sWrapMode, unsigned int tWrapMode ); + void SetWrapMode( Render::Sampler* sampler, uint32_t rWrapMode, uint32_t sWrapMode, uint32_t tWrapMode ); /** * Add a property buffer to the render manager. @@ -236,21 +245,21 @@ public: * @param[in] data The new data of the buffer * @param[in] size The new size of the buffer */ - void SetPropertyBufferData( Render::PropertyBuffer* propertyBuffer, OwnerPointer< Vector >& data, size_t size ); + void SetPropertyBufferData( Render::PropertyBuffer* propertyBuffer, OwnerPointer< Vector >& data, uint32_t size ); /** * Sets the data for the index buffer of an existing geometry * @param[in] geometry The geometry * @param[in] data A vector containing the indices */ - void SetIndexBuffer( Render::Geometry* geometry, Dali::Vector& data ); + void SetIndexBuffer( Render::Geometry* geometry, Dali::Vector& data ); /** * Set the geometry type of an existing render geometry * @param[in] geometry The render geometry * @param[in] geometryType The new geometry type */ - void SetGeometryType( Render::Geometry* geometry, unsigned int geometryType ); + void SetGeometryType( Render::Geometry* geometry, uint32_t geometryType ); /** * Adds a texture to the render manager @@ -282,7 +291,7 @@ public: * Adds a framebuffer to the render manager * @param[in] frameBuffer The framebuffer to add */ - void AddFrameBuffer( Render::FrameBuffer* frameBuffer ); + void AddFrameBuffer( OwnerPointer< Render::FrameBuffer >& frameBuffer ); /** * Removes a framebuffer from the render manager @@ -297,7 +306,7 @@ public: * @param[in] mipmapLevel The mipmap of the texture to be attached * @param[in] layer Indicates which layer of a cube map or array texture to attach. Unused for 2D textures */ - void AttachColorTextureToFrameBuffer( Render::FrameBuffer* frameBuffer, Render::Texture* texture, unsigned int mipmapLevel, unsigned int layer ); + void AttachColorTextureToFrameBuffer( Render::FrameBuffer* frameBuffer, Render::Texture* texture, uint32_t mipmapLevel, uint32_t layer ); /** * Adds a render tracker to the RenderManager. RenderManager takes ownership of the @@ -324,8 +333,10 @@ public: /** * Renders the results of the previous "update" traversal. * @param[out] status contains the rendering flags. + * @param[in] forceClear Force the Clear on the framebuffer even if nothing is rendered. + * @param[in] uploadOnly Upload the resource only without rendering. */ - void Render( Integration::RenderStatus& status ); + void Render( Integration::RenderStatus& status, bool forceClear, bool uploadOnly ); private: @@ -361,4 +372,4 @@ private: } // namespace Dali -#endif // __DALI_INTERNAL_SCENE_GRAPH_RENDER_MANAGER_H__ +#endif // DALI_INTERNAL_SCENE_GRAPH_RENDER_MANAGER_H