#include "tizen_src/chromium_impl/ui/gfx/tizen_gpu_buffer.h"
-#include <capi-graphics-control.h>
#include <tbm_type_common.h>
#include <cstring>
#include "base/files/scoped_file.h"
+#include "build/tizen_version.h"
#include "tizen_src/chromium_impl/ui/gfx/tbm_utils.h"
#include "ui/gfx/tizen_gpu_buffer.h"
+#if TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+#include <ppi-graphics-control.h>
+#else
+#include <capi-graphics-control.h>
+#endif // TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+
namespace gfx {
std::unique_ptr<TizenGpuBuffer> TizenGpuBuffer::Allocate(size_t size,
int height,
size_t bytes_per_element) {
tbm_bo_handle dst_handle = tbm_bo_get_handle(bo_.get(), TBM_DEVICE_2D);
+#if TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+ ppi_graphics_control_ga_blt_rop_info_s ga_info{};
+#else
GraphicsGABltRopInfo ga_info{};
+#endif // TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
// src info
ga_info.src_handle = phys_addr;
ga_info.dst_rect.y = dst_offset / dst_stride;
// GA info
+#if TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+ switch (bytes_per_element) {
+ case 1:
+ ga_info.color_format = PPI_GRAPHICS_GA_FORMAT_8BPP;
+ break;
+ case 2:
+ ga_info.color_format = PPI_GRAPHICS_GA_FORMAT_16BPP;
+ break;
+ default:
+ return false;
+ }
+ ga_info.rop_mode = PPI_GRAPHICS_GA_ROP_COPY;
+ ga_info.pre_alphamode = 0;
+ ga_info.ga_mode = PPI_GRAPHICS_GA_BITBLT_MODE_NORMAL;
+ ga_info.ga_op_type = PPI_GRAPHICS_GA_COPY;
+ int ret = ppi_graphics_control_ga_bltrop(bufmgr_.get(), &ga_info);
+ return ret == 0;
+#else
switch (bytes_per_element) {
case 1:
ga_info.color_format = GRAPHICS_GA_FORMAT_8BPP;
ga_info.ga_op_type = GRAPHICS_GA_COPY;
int ret = Gfx_GA_BltRop(bufmgr_.get(), &ga_info);
return ret == 1;
+#endif // TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
}
bool TizenGpuBuffer::CopyFrom(const TizenGpuBuffer& source,
int dst_height,
size_t bytes_per_element) {
tbm_bo_handle dst_handle = tbm_bo_get_handle(bo_.get(), TBM_DEVICE_2D);
+#if TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+ ppi_graphics_control_ga_scale_info_s ga_info{};
+#else
GraphicsGAScaleInfo ga_info;
- memset(&ga_info, 0, sizeof(GraphicsGAScaleInfo));
+#endif // TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
// src info
ga_info.src_handle = src_phys_addr;
ga_info.dst_rect.h = dst_height;
// GA info
+#if TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+ switch (bytes_per_element) {
+ case 1:
+ ga_info.color_format = PPI_GRAPHICS_GA_FORMAT_8BPP;
+ break;
+ case 2:
+ ga_info.color_format = PPI_GRAPHICS_GA_FORMAT_16BPP;
+ break;
+ default:
+ return false;
+ }
+ ga_info.rop_mode = PPI_GRAPHICS_GA_ROP_COPY;
+ ga_info.pre_alphamode = 0;
+ ga_info.ga_mode = PPI_GRAPHICS_GA_SCALE_MODE;
+ ga_info.ga_op_type = PPI_GRAPHICS_GA_SCALE;
+ return ppi_graphics_control_ga_scale(bufmgr_.get(), &ga_info) == 0;
+#else
switch (bytes_per_element) {
case 1:
ga_info.color_format = GRAPHICS_GA_FORMAT_8BPP;
ga_info.ga_mode = GRAPHICS_GA_SCALE_MODE;
ga_info.ga_op_type = GRAPHICS_GA_SCALE;
return Gfx_GA_Scale(bufmgr_.get(), &ga_info) == 1;
+#endif // TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
}
bool TizenGpuBuffer::Scale(const TizenGpuBuffer& source,