Merge "Make sure that global variables are initialized lazily." into devel/master
[platform/core/uifw/dali-core.git] / dali / devel-api / rendering / texture-devel.cpp
1 /*
2  * Copyright (c) 2022 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include <dali/devel-api/rendering/texture-devel.h>
18 #include <dali/internal/event/rendering/texture-impl.h>
19
20 namespace Dali
21 {
22 namespace DevelTexture
23 {
24 bool IsNative(Dali::Texture texture)
25 {
26   auto& impl = GetImplementation(texture);
27   return impl.IsNative();
28 }
29
30 bool ApplyNativeFragmentShader(Dali::Texture texture, std::string& shader)
31 {
32   auto& impl = GetImplementation(texture);
33   return impl.ApplyNativeFragmentShader(shader);
34 }
35
36 bool UploadSubPixelData(Texture   texture,
37                         PixelData pixelData,
38                         uint32_t  dataXOffset,
39                         uint32_t  dataYOffset,
40                         uint32_t  dataWidth,
41                         uint32_t  dataHeight)
42 {
43   Internal::PixelData& internalPixelData = GetImplementation(pixelData);
44   return GetImplementation(texture).UploadSubPixelData(&internalPixelData, dataXOffset, dataYOffset, dataWidth, dataHeight);
45 }
46
47 bool UploadSubPixelData(Texture   texture,
48                         PixelData pixelData,
49                         uint32_t  dataXOffset,
50                         uint32_t  dataYOffset,
51                         uint32_t  dataWidth,
52                         uint32_t  dataHeight,
53                         uint32_t  layer,
54                         uint32_t  mipmap,
55                         uint32_t  xOffset,
56                         uint32_t  yOffset,
57                         uint32_t  width,
58                         uint32_t  height)
59 {
60   Internal::PixelData& internalPixelData = GetImplementation(pixelData);
61   return GetImplementation(texture).UploadSubPixelData(&internalPixelData, dataXOffset, dataYOffset, dataWidth, dataHeight, layer, mipmap, xOffset, yOffset, width, height);
62 }
63
64 } // namespace DevelTexture
65 } // namespace Dali