1 #ifndef __DALI_INTERNAL_SCENE_GRAPH_GEOMETRY_DATA_PROVIDER_H__
2 #define __DALI_INTERNAL_SCENE_GRAPH_GEOMETRY_DATA_PROVIDER_H__
4 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 #include <dali/public-api/geometry/geometry.h>
21 #include <dali/internal/common/buffer-index.h>
22 #include <dali/internal/common/owner-container.h>
23 #include <dali/internal/render/data-providers/property-buffer-data-provider.h>
34 * An interface to provide geometry properties to the render thread.
36 class GeometryDataProvider
39 typedef Dali::Geometry::GeometryType GeometryType;
42 * Constructor. Nothing to do as a pure interface.
44 GeometryDataProvider() { }
46 public: // GeometryDataProvider
48 * Get the type of geometry to draw
50 virtual GeometryType GetGeometryType( BufferIndex bufferIndex ) const = 0;
53 * @todo MESH_REWORK - Should only use this in Update Sorting algorithm
54 * Returns true if this geometry requires depth testing, e.g. if it is
55 * a set of vertices with differing z values.
57 virtual bool GetRequiresDepthTesting( BufferIndex bufferIndex ) const = 0;
62 * Virtual destructor, this is an interface, no deletion through this interface
64 virtual ~GeometryDataProvider() { }
71 #endif // __DALI_INTERNAL_SCENE_GRAPH_GEOMETRY_DATA_PROVIDER_H__