77#include < optional>
88#include < utility>
99
10- #include " flutter/fml/logging.h"
1110#include " flutter/fml/mapping.h"
1211#include " flutter/fml/trace_event.h"
1312#include " impeller/base/allocation.h"
1817
1918namespace impeller {
2019
21- static bool IsDepthStencilFormat (PixelFormat format) {
22- switch (format) {
23- case PixelFormat::kS8UInt :
24- case PixelFormat::kD24UnormS8Uint :
25- case PixelFormat::kD32FloatS8UInt :
26- return true ;
27- case PixelFormat::kUnknown :
28- case PixelFormat::kA8UNormInt :
29- case PixelFormat::kR8UNormInt :
30- case PixelFormat::kR8G8UNormInt :
31- case PixelFormat::kR8G8B8A8UNormInt :
32- case PixelFormat::kR8G8B8A8UNormIntSRGB :
33- case PixelFormat::kB8G8R8A8UNormInt :
34- case PixelFormat::kB8G8R8A8UNormIntSRGB :
35- case PixelFormat::kR32G32B32A32Float :
36- case PixelFormat::kR16G16B16A16Float :
37- case PixelFormat::kB10G10R10XR :
38- case PixelFormat::kB10G10R10XRSRGB :
39- case PixelFormat::kB10G10R10A10XR :
40- return false ;
41- }
42- FML_UNREACHABLE ();
43- }
44-
4520static TextureGLES::Type GetTextureTypeFromDescriptor (
4621 const TextureDescriptor& desc) {
4722 const auto usage = static_cast <TextureUsageMask>(desc.usage );
4823 const auto render_target =
4924 static_cast <TextureUsageMask>(TextureUsage::kRenderTarget );
5025 const auto is_msaa = desc.sample_count == SampleCount::kCount4 ;
51- if (usage == render_target && IsDepthStencilFormat ( desc.format ) ) {
26+ if (usage == render_target && desc.format == PixelFormat:: kS8UInt ) {
5227 return is_msaa ? TextureGLES::Type::kRenderBufferMultisampled
5328 : TextureGLES::Type::kRenderBuffer ;
5429 }
@@ -482,20 +457,19 @@ TextureGLES::Type TextureGLES::GetType() const {
482457 return type_;
483458}
484459
485- static GLenum ToAttachmentType (TextureGLES::AttachmentType point) {
460+ static GLenum ToAttachmentPoint (TextureGLES::AttachmentPoint point) {
486461 switch (point) {
487- case TextureGLES::AttachmentType ::kColor0 :
462+ case TextureGLES::AttachmentPoint ::kColor0 :
488463 return GL_COLOR_ATTACHMENT0;
489- case TextureGLES::AttachmentType ::kDepth :
464+ case TextureGLES::AttachmentPoint ::kDepth :
490465 return GL_DEPTH_ATTACHMENT;
491- case TextureGLES::AttachmentType ::kStencil :
466+ case TextureGLES::AttachmentPoint ::kStencil :
492467 return GL_STENCIL_ATTACHMENT;
493468 }
494469}
495470
496- bool TextureGLES::SetAsFramebufferAttachment (
497- GLenum target,
498- AttachmentType attachment_type) const {
471+ bool TextureGLES::SetAsFramebufferAttachment (GLenum target,
472+ AttachmentPoint point) const {
499473 if (!IsValid ()) {
500474 return false ;
501475 }
@@ -508,30 +482,29 @@ bool TextureGLES::SetAsFramebufferAttachment(
508482
509483 switch (type_) {
510484 case Type::kTexture :
511- gl.FramebufferTexture2D (target, // target
512- ToAttachmentType (attachment_type ), // attachment
513- GL_TEXTURE_2D, // textarget
514- handle.value (), // texture
515- 0 // level
485+ gl.FramebufferTexture2D (target, // target
486+ ToAttachmentPoint (point ), // attachment
487+ GL_TEXTURE_2D, // textarget
488+ handle.value (), // texture
489+ 0 // level
516490 );
517491 break ;
518492 case Type::kTextureMultisampled :
519493 gl.FramebufferTexture2DMultisampleEXT (
520- target, // target
521- ToAttachmentType (attachment_type ), // attachment
522- GL_TEXTURE_2D, // textarget
523- handle.value (), // texture
524- 0 , // level
525- 4 // samples
494+ target, // target
495+ ToAttachmentPoint (point ), // attachment
496+ GL_TEXTURE_2D, // textarget
497+ handle.value (), // texture
498+ 0 , // level
499+ 4 // samples
526500 );
527501 break ;
528502 case Type::kRenderBuffer :
529503 case Type::kRenderBufferMultisampled :
530- gl.FramebufferRenderbuffer (
531- target, // target
532- ToAttachmentType (attachment_type), // attachment
533- GL_RENDERBUFFER, // render-buffer target
534- handle.value () // render-buffer
504+ gl.FramebufferRenderbuffer (target, // target
505+ ToAttachmentPoint (point), // attachment
506+ GL_RENDERBUFFER, // render-buffer target
507+ handle.value () // render-buffer
535508 );
536509 break ;
537510 }
0 commit comments