return Graphics::Format::ETC2_R8G8B8A1_SRGB_BLOCK; // no 'punchthrough' format
case Pixel::COMPRESSED_RGBA8_ETC2_EAC:
- return Graphics::Format::ETC2_R8G8B8_UNORM_BLOCK; // doesn't seem to map onto any format
+ return Graphics::Format::ETC2_R8G8B8A8_UNORM_BLOCK;
case Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
- return Graphics::Format::ETC2_R8G8B8A8_SRGB_BLOCK; // doesn't seem to map onto any format
+ return Graphics::Format::ETC2_R8G8B8A8_SRGB_BLOCK;
case Pixel::COMPRESSED_RGB8_ETC1:
return Graphics::Format::ETC2_R8G8B8_UNORM_BLOCK; // doesn't seem to be supported at all
return Graphics::Format::R16G16B16_SFLOAT;
case Pixel::RGB32F:
return Graphics::Format::R32G32B32_SFLOAT;
+ case Pixel::R11G11B10F:
+ return Graphics::Format::R11G11B10_UFLOAT_PACK32;
}
return Graphics::Format::UNDEFINED;
}
mPixelFormat(format),
mWidth(size.GetWidth()),
mHeight(size.GetHeight()),
- mMaxMipMapLevel(0),
mType(type),
mHasAlpha(HasAlpha(format))
{
mPixelFormat(Pixel::RGBA8888),
mWidth(static_cast<uint16_t>(nativeImageInterface->GetWidth())), // ignoring overflow, not happening in practice
mHeight(static_cast<uint16_t>(nativeImageInterface->GetHeight())), // ignoring overflow, not happening in practice
- mMaxMipMapLevel(0),
mType(TextureType::TEXTURE_2D),
mHasAlpha(nativeImageInterface->RequiresBlending())
{
void Texture::Upload(PixelDataPtr pixelData, const Internal::Texture::UploadParams& params)
{
- DALI_ASSERT_ALWAYS(mNativeImage == nullptr);
+ DALI_ASSERT_ALWAYS(!mNativeImage);
if(!mGraphicsTexture)
{
info.srcExtent2D = {params.width, params.height};
info.srcOffset = 0;
info.srcSize = pixelData->GetBufferSize();
+ info.srcFormat = ConvertPixelFormat(pixelData->GetPixelFormat());
Graphics::TextureUpdateSourceInfo updateSourceInfo{};
updateSourceInfo.sourceType = Graphics::TextureUpdateSourceInfo::Type::MEMORY;
void Texture::GenerateMipmaps()
{
- mMaxMipMapLevel = 0;
- DALI_LOG_ERROR("FIXME: GRAPHICS");
- //@todo Implement with Graphics API
+ if(!mGraphicsTexture)
+ {
+ Create(static_cast<Graphics::TextureUsageFlags>(Graphics::TextureUsageFlagBits::SAMPLE));
+ }
+
+ mGraphicsController->GenerateTextureMipmaps(*mGraphicsTexture.get());
}
} // namespace Render