#ifndef DALI_DEMO_UTILITY_H #define DALI_DEMO_UTILITY_H /* * Copyright (c) 2016 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. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #include #include #include #include #include namespace DemoHelper { Dali::PixelData LoadPixelData( const char* imagePath, Dali::ImageDimensions size, Dali::FittingMode::Type fittingMode, Dali::SamplingMode::Type samplingMode ) { Dali::BitmapLoader loader = Dali::BitmapLoader::New( imagePath, size, fittingMode, samplingMode ); loader.Load(); return loader.GetPixelData(); } /** * @deprecated, dont use this anymore */ Dali::Image LoadImage( const char* imagePath, Dali::ImageDimensions size = Dali::ImageDimensions(), Dali::FittingMode::Type fittingMode = Dali::FittingMode::DEFAULT, Dali::SamplingMode::Type samplingMode = Dali::SamplingMode::DEFAULT ) { return Dali::ResourceImage::New( imagePath, size, fittingMode, samplingMode ); } Dali::Texture LoadTexture( const char* imagePath, Dali::ImageDimensions size = Dali::ImageDimensions(), Dali::FittingMode::Type fittingMode = Dali::FittingMode::DEFAULT, Dali::SamplingMode::Type samplingMode = Dali::SamplingMode::DEFAULT ) { Dali::PixelData pixelData = LoadPixelData(imagePath, size, fittingMode, samplingMode); Dali::Texture texture = Dali::Texture::New( Dali::TextureType::TEXTURE_2D, pixelData.GetPixelFormat(), pixelData.GetWidth(), pixelData.GetHeight() ); texture.Upload( pixelData ); return texture; } /** * @brief Load an bitmap resource. * @deprecated, dont use this anymore * * If it is required to scaled-down to no more than the stage dimensions, * uses image scaling mode FittingMode::SCALE_TO_FILL to resize the image at * load time to cover the entire stage with pixels with no borders, * and filter mode BOX_THEN_LINEAR to sample the image with * maximum quality. */ Dali::Image LoadStageFillingImage( const char* imagePath ) { Dali::Vector2 stageSize = Dali::Stage::GetCurrent().GetSize(); return LoadImage( imagePath, Dali::ImageDimensions( stageSize.x, stageSize.y ), Dali::FittingMode::SCALE_TO_FILL, Dali::SamplingMode::BOX_THEN_LINEAR ); } Dali::Texture LoadStageFillingTexture( const char* imagePath ) { Dali::Vector2 stageSize = Dali::Stage::GetCurrent().GetSize(); return LoadTexture( imagePath, Dali::ImageDimensions( stageSize.x, stageSize.y ), Dali::FittingMode::SCALE_TO_FILL, Dali::SamplingMode::BOX_THEN_LINEAR ); } Dali::Geometry CreateTexturedQuad() { struct Vertex { Dali::Vector2 position; Dali::Vector2 texCoord; }; static const Vertex data[] = {{ Dali::Vector2( -0.5f, -0.5f ), Dali::Vector2( 0.0f, 0.0f ) }, { Dali::Vector2( 0.5f, -0.5f ), Dali::Vector2( 1.0f, 0.0f ) }, { Dali::Vector2( -0.5f, 0.5f ), Dali::Vector2( 0.0f, 1.0f ) }, { Dali::Vector2( 0.5f, 0.5f ), Dali::Vector2( 1.0f, 1.0f ) }}; Dali::PropertyBuffer vertexBuffer; Dali::Property::Map vertexFormat; vertexFormat["aPosition"] = Dali::Property::VECTOR2; vertexFormat["aTexCoord"] = Dali::Property::VECTOR2; //Create a vertex buffer for vertex positions and texture coordinates vertexBuffer = Dali::PropertyBuffer::New( vertexFormat ); vertexBuffer.SetData( data, 4u ); //Create the geometry Dali::Geometry geometry = Dali::Geometry::New(); geometry.AddVertexBuffer( vertexBuffer ); geometry.SetType(Dali::Geometry::TRIANGLE_STRIP ); return geometry; } } // DemoHelper #endif // DALI_DEMO_UTILITY_H