X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Ftest-graphics-buffer.cpp;h=27f0dced18b6855626d1787699f8b6b13b70f8e5;hb=abc8459e18c5a7f8730c9493885fd067126520cb;hp=b64b9ee8b3572e337b4925a84eae84d6b37f8b75;hpb=100f0f8554f97295dd52e01a91ef2b868eba3554;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-buffer.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-buffer.cpp index b64b9ee..27f0dce 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-buffer.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-buffer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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. @@ -15,10 +15,10 @@ */ #include "test-graphics-buffer.h" -#include "test-graphics-program.h" -#include "test-graphics-reflection.h" #include #include "dali-test-suite-utils.h" +#include "test-graphics-program.h" +#include "test-graphics-reflection.h" namespace Dali { @@ -27,8 +27,8 @@ TestGraphicsBuffer::TestGraphicsBuffer(TraceCallStack& callStack, TestGlAbstract mGl(glAbstraction), mUsage(usage) { - memory.reserve(size); - mGl.GetBufferTrace().EnableLogging(true); + memory.resize(size); + mGl.GetBufferTrace().EnableLogging(false); } void TestGraphicsBuffer::Bind() @@ -65,7 +65,7 @@ void TestGraphicsBuffer::Upload(uint32_t offset, uint32_t size) } else { - mGl.BufferData(GetTarget(), size, &memory[0], GL_STATIC_DRAW); //@todo Query - do we need other usages? + mGl.BufferData(GetTarget(), GLsizeiptr(size), &memory[0], GL_STATIC_DRAW); //@todo Query - do we need other usages? mCreated = true; } } @@ -80,72 +80,72 @@ GLenum TestGraphicsBuffer::GetTarget() return target; } -void TestGraphicsBuffer::BindAsUniformBuffer( const TestGraphicsProgram* program ) const +void TestGraphicsBuffer::BindAsUniformBuffer(const TestGraphicsProgram* program, const Dali::UniformBufferBindingDescriptor& uboBinding) const { - auto* reflection = static_cast(&program->GetReflection()); - - Graphics::UniformBlockInfo uboInfo{}; - reflection->GetUniformBlock(0, uboInfo); + auto* reflection = static_cast(&program->GetReflection()); + const auto& uboInfo = reflection->GetTestUniformBlock(0u); - auto* data = memory.data(); + auto offset = uboBinding.offset; + auto* data = memory.data() + offset; - for( const auto& member : uboInfo.members ) + for(const auto& member : uboInfo.members) { - auto type = reflection->GetMemberType( 0, member.location ); - switch(type) + uint32_t numElements = member.numElements > 0 ? member.numElements : 1; + + for(uint32_t i = 0; i < numElements; ++i) { - case Property::VECTOR4: - { - auto value = *reinterpret_cast(data+member.offset); - mGl.Uniform4f( member.location, value.x, value.y, value.z, value.w ); - break; - } - case Property::VECTOR3: - { - auto value = *reinterpret_cast(data+member.offset); - mGl.Uniform3f( member.location, value.x, value.y, value.z ); - break; - } - case Property::VECTOR2: - { - auto value = *reinterpret_cast(data+member.offset); - mGl.Uniform2f( member.location, value.x, value.y ); - break; - } - case Property::FLOAT: - { - auto value = *reinterpret_cast(data+member.offset); - fprintf(stderr, "BindAsUniformBuffer: %s, value: %f\n", member.name.c_str(), value); - mGl.Uniform1f( member.location, value ); - break; - } - case Property::INTEGER: + switch(member.type) { - auto ptr = reinterpret_cast(data+member.offset); - auto value = *ptr; - mGl.Uniform1i( member.location, value ); - break; - } - case Property::MATRIX: - { - auto value = reinterpret_cast(data+member.offset); - mGl.UniformMatrix4fv( member.location, 1, GL_FALSE, value ); - break; - } - case Property::MATRIX3: - { - auto value = reinterpret_cast(data+member.offset); - mGl.UniformMatrix3fv( member.location, 1, GL_FALSE, value ); - break; - } - default: - { - fprintf(stderr, "\n%s type not found\n", member.name.c_str()); + case Property::VECTOR4: + { + auto value = *reinterpret_cast(data + member.offsets[i]); + mGl.Uniform4f(member.locations[i], value.x, value.y, value.z, value.w); + break; + } + case Property::VECTOR3: + { + auto value = *reinterpret_cast(data + member.offsets[i]); + mGl.Uniform3f(member.locations[i], value.x, value.y, value.z); + break; + } + case Property::VECTOR2: + { + auto value = *reinterpret_cast(data + member.offsets[i]); + mGl.Uniform2f(member.locations[i], value.x, value.y); + break; + } + case Property::FLOAT: + { + auto value = *reinterpret_cast(data + member.offsets[i]); + mGl.Uniform1f(member.locations[i], value); + break; + } + case Property::INTEGER: + { + auto ptr = reinterpret_cast(data + member.offsets[i]); + auto value = *ptr; + mGl.Uniform1i(member.locations[i], value); + break; + } + case Property::MATRIX: + { + auto value = reinterpret_cast(data + member.offsets[i]); + mGl.UniformMatrix4fv(member.locations[i], 1, GL_FALSE, value); + break; + } + case Property::MATRIX3: + { + auto value = reinterpret_cast(data + member.offsets[i]); + mGl.UniformMatrix3fv(member.locations[i], 1, GL_FALSE, value); + break; + } + default: + { + fprintf(stderr, "\n%s type not found\n", member.name.c_str()); + } } } } - - } } // namespace Dali