2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 #include <dali-test-suite-utils.h>
20 #include <dali/internal/graphics/gles/gles2-implementation.h>
21 #include <dali/internal/graphics/gles/gles3-implementation.h>
23 void gles_implementation_startup(void)
27 void gles_implementation_cleanup(void)
31 using namespace Dali::Internal::Adaptor;
35 void CallAllMethods(GlesAbstraction& implementation)
37 // These tests are purely for coverage, they don't really test anything!
40 implementation.ReadBuffer(0);
41 implementation.DrawRangeElements(0, 0, 0, 0, 0, nullptr);
42 implementation.TexImage3D(0, 0, 0, 0, 0, 0, 0, 0, 0, nullptr);
43 implementation.TexSubImage3D(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, nullptr);
44 implementation.CopyTexSubImage3D(0, 0, 0, 0, 0, 0, 0, 0, 0);
45 implementation.CompressedTexImage3D(0, 0, 0, 0, 0, 0, 0, 0, nullptr);
46 implementation.CompressedTexSubImage3D(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, nullptr);
47 implementation.GenQueries(0, nullptr);
48 implementation.DeleteQueries(0, nullptr);
49 implementation.IsQuery(0);
50 implementation.BeginQuery(0, 0);
51 implementation.EndQuery(0);
52 implementation.GetQueryiv(0, 0, nullptr);
53 implementation.GetQueryObjectuiv(0, 0, nullptr);
54 implementation.UnmapBuffer(0);
55 implementation.GetBufferPointerv(0, 0, nullptr);
56 implementation.DrawBuffers(0, nullptr);
57 implementation.UniformMatrix2x3fv(0, 0, 0, nullptr);
58 implementation.UniformMatrix3x2fv(0, 0, 0, nullptr);
59 implementation.UniformMatrix2x4fv(0, 0, 0, nullptr);
60 implementation.UniformMatrix4x2fv(0, 0, 0, nullptr);
61 implementation.UniformMatrix3x4fv(0, 0, 0, nullptr);
62 implementation.UniformMatrix4x3fv(0, 0, 0, nullptr);
63 implementation.BlitFramebuffer(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
64 implementation.RenderbufferStorageMultisample(0, 0, 0, 0, 0);
65 implementation.FramebufferTexture2DMultisample(0, 0, 0, 0, 0, 0);
66 implementation.FramebufferTextureLayer(0, 0, 0, 0, 0);
67 implementation.MapBufferRange(0, 0, 0, 0);
68 implementation.FlushMappedBufferRange(0, 0, 0);
69 implementation.BindVertexArray(0);
70 implementation.DeleteVertexArrays(0, nullptr);
71 implementation.GenVertexArrays(0, nullptr);
72 implementation.IsVertexArray(0);
73 implementation.GetIntegeri_v(0, 0, nullptr);
74 implementation.BeginTransformFeedback(0);
75 implementation.EndTransformFeedback();
76 implementation.BindBufferRange(0, 0, 0, 0, 0);
77 implementation.BindBufferBase(0, 0, 0);
78 implementation.TransformFeedbackVaryings(0, 0, nullptr, 0);
79 implementation.GetTransformFeedbackVarying(0, 0, 0, nullptr, nullptr, nullptr, nullptr);
80 implementation.VertexAttribIPointer(0, 0, 0, 0, nullptr);
81 implementation.GetVertexAttribIiv(0, 0, nullptr);
82 implementation.GetVertexAttribIuiv(0, 0, nullptr);
83 implementation.VertexAttribI4i(0, 0, 0, 0, 0);
84 implementation.VertexAttribI4ui(0, 0, 0, 0, 0);
85 implementation.VertexAttribI4iv(0, nullptr);
86 implementation.VertexAttribI4uiv(0, nullptr);
87 implementation.GetUniformuiv(0, 0, nullptr);
88 implementation.GetFragDataLocation(0, nullptr);
89 implementation.Uniform1ui(0, 0);
90 implementation.Uniform2ui(0, 0, 0);
91 implementation.Uniform3ui(0, 0, 0, 0);
92 implementation.Uniform4ui(0, 0, 0, 0, 0);
93 implementation.Uniform1uiv(0, 0, nullptr);
94 implementation.Uniform2uiv(0, 0, nullptr);
95 implementation.Uniform3uiv(0, 0, nullptr);
96 implementation.Uniform4uiv(0, 0, nullptr);
97 implementation.ClearBufferiv(0, 0, nullptr);
98 implementation.ClearBufferuiv(0, 0, nullptr);
99 implementation.ClearBufferfv(0, 0, nullptr);
100 implementation.ClearBufferfi(0, 0, 0, 0);
101 implementation.GetStringi(0, 0);
102 implementation.CopyBufferSubData(0, 0, 0, 0, 0);
103 implementation.GetUniformIndices(0, 0, nullptr, nullptr);
104 implementation.GetActiveUniformsiv(0, 0, nullptr, 0, nullptr);
105 implementation.GetUniformBlockIndex(0, nullptr);
106 implementation.GetActiveUniformBlockiv(0, 0, 0, nullptr);
107 implementation.GetActiveUniformBlockName(0, 0, 0, nullptr, nullptr);
108 implementation.UniformBlockBinding(0, 0, 0);
109 implementation.DrawArraysInstanced(0, 0, 0, 0);
110 implementation.DrawElementsInstanced(0, 0, 0, nullptr, 0);
111 implementation.FenceSync(0, 0);
112 implementation.IsSync(0);
113 implementation.DeleteSync(0);
114 implementation.ClientWaitSync(0, 0, 0);
115 implementation.WaitSync(0, 0, 0);
116 implementation.GetInteger64v(0, nullptr);
117 implementation.GetSynciv(0, 0, 0, nullptr, nullptr);
118 implementation.GetInteger64i_v(0, 0, nullptr);
119 implementation.GetBufferParameteri64v(0, 0, nullptr);
120 implementation.GenSamplers(0, nullptr);
121 implementation.DeleteSamplers(0, nullptr);
122 implementation.IsSampler(0);
123 implementation.BindSampler(0, 0);
124 implementation.SamplerParameteri(0, 0, 0);
125 implementation.SamplerParameteriv(0, 0, nullptr);
126 implementation.SamplerParameterf(0, 0, 0);
127 implementation.SamplerParameterfv(0, 0, nullptr);
128 implementation.GetSamplerParameteriv(0, 0, nullptr);
129 implementation.GetSamplerParameterfv(0, 0, nullptr);
130 implementation.VertexAttribDivisor(0, 0);
131 implementation.BindTransformFeedback(0, 0);
132 implementation.DeleteTransformFeedbacks(0, nullptr);
133 implementation.GenTransformFeedbacks(0, nullptr);
134 implementation.IsTransformFeedback(0);
135 implementation.PauseTransformFeedback();
136 implementation.ResumeTransformFeedback();
137 implementation.GetProgramBinary(0, 0, nullptr, nullptr, nullptr);
138 implementation.ProgramBinary(0, 0, nullptr, 0);
139 implementation.ProgramParameteri(0, 0, 0);
140 implementation.InvalidateFramebuffer(0, 0, nullptr);
141 implementation.InvalidateSubFramebuffer(0, 0, nullptr, 0, 0, 0, 0);
142 implementation.TexStorage2D(0, 0, 0, 0, 0);
143 implementation.TexStorage3D(0, 0, 0, 0, 0, 0);
144 implementation.GetInternalformativ(0, 0, 0, 0, nullptr);
145 implementation.BlendBarrier();
146 DALI_TEST_CHECK(true); // Should get here!
150 DALI_TEST_CHECK(false); // Should not get here!
154 template<typename Impl>
155 void CreateWithBaseClassPtr()
157 // This derived destructor of the class is called which is purely for increasing function coverage
158 GlesAbstraction* abstraction = new Impl;
161 abstraction->ReadBuffer(0);
162 DALI_TEST_CHECK(true);
166 DALI_TEST_CHECK(false);
171 } // unnamed namespace
173 int UtcDaliGles2ImplementationConstruction(void)
175 CreateWithBaseClassPtr<Gles2Implementation>();
179 int UtcDaliGles3ImplementationConstruction(void)
181 CreateWithBaseClassPtr<Gles3Implementation>();
185 int UtcDaliGles2ImplementationMethods(void)
187 Gles2Implementation implementation;
188 CallAllMethods(implementation);
192 int UtcDaliGles3ImplementationMethods(void)
194 Gles3Implementation implementation;
195 CallAllMethods(implementation);