framebuffer_config.h 977 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "common/common_types.h"
  5. #include "common/math_util.h"
  6. #include "core/hle/service/nvnflinger/buffer_transform_flags.h"
  7. #include "core/hle/service/nvnflinger/pixel_format.h"
  8. #include "core/hle/service/nvnflinger/ui/fence.h"
  9. namespace Tegra {
  10. enum class BlendMode {
  11. Opaque,
  12. Premultiplied,
  13. Coverage,
  14. };
  15. /**
  16. * Struct describing framebuffer configuration
  17. */
  18. struct FramebufferConfig {
  19. DAddr address{};
  20. u32 offset{};
  21. u32 width{};
  22. u32 height{};
  23. u32 stride{};
  24. Service::android::PixelFormat pixel_format{};
  25. Service::android::BufferTransformFlags transform_flags{};
  26. Common::Rectangle<int> crop_rect{};
  27. BlendMode blending{};
  28. };
  29. Common::Rectangle<f32> NormalizeCrop(const FramebufferConfig& framebuffer, u32 texture_width,
  30. u32 texture_height);
  31. } // namespace Tegra