mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Wire up texture usage.
This commit is contained in:
parent
15c9aaeb13
commit
1b830f9c82
@ -73,7 +73,7 @@ impeller_component("compositor") {
|
||||
"../shader_glue",
|
||||
]
|
||||
|
||||
libs = [ "Metal.framework" ]
|
||||
frameworks = [ "Metal.framework" ]
|
||||
}
|
||||
|
||||
source_set("compositor_unittests") {
|
||||
|
||||
@ -59,6 +59,15 @@ enum class StoreAction {
|
||||
kStore,
|
||||
};
|
||||
|
||||
using TextureUsageMask = uint64_t;
|
||||
|
||||
enum class TextureUsage : TextureUsageMask {
|
||||
kUnknown,
|
||||
kShaderRead,
|
||||
kShaderWrite,
|
||||
kRenderTarget,
|
||||
};
|
||||
|
||||
enum class PrimitiveType {
|
||||
kTriangle,
|
||||
kTriangleStrip,
|
||||
|
||||
@ -83,6 +83,19 @@ MTLTextureDescriptor* ToMTLTextureDescriptor(const TextureDescriptor& desc) {
|
||||
mtl_desc.width = desc.size.width;
|
||||
mtl_desc.height = desc.size.height;
|
||||
mtl_desc.mipmapLevelCount = desc.mip_count;
|
||||
mtl_desc.usage = MTLTextureUsageUnknown;
|
||||
if (desc.usage & static_cast<TextureUsageMask>(TextureUsage::kUnknown)) {
|
||||
mtl_desc.usage |= MTLTextureUsageUnknown;
|
||||
}
|
||||
if (desc.usage & static_cast<TextureUsageMask>(TextureUsage::kShaderRead)) {
|
||||
mtl_desc.usage |= MTLTextureUsageShaderRead;
|
||||
}
|
||||
if (desc.usage & static_cast<TextureUsageMask>(TextureUsage::kShaderWrite)) {
|
||||
mtl_desc.usage |= MTLTextureUsageShaderWrite;
|
||||
}
|
||||
if (desc.usage & static_cast<TextureUsageMask>(TextureUsage::kRenderTarget)) {
|
||||
mtl_desc.usage |= MTLTextureUsageRenderTarget;
|
||||
}
|
||||
return mtl_desc;
|
||||
}
|
||||
|
||||
|
||||
@ -16,6 +16,8 @@ struct TextureDescriptor {
|
||||
PixelFormat format = PixelFormat::kUnknown;
|
||||
ISize size;
|
||||
size_t mip_count = 1u; // Size::MipCount is usually appropriate.
|
||||
TextureUsageMask usage =
|
||||
static_cast<TextureUsageMask>(TextureUsage::kShaderRead);
|
||||
|
||||
constexpr size_t GetSizeOfBaseMipLevel() const {
|
||||
if (!IsValid()) {
|
||||
|
||||
@ -20,7 +20,7 @@ impeller_component("playground") {
|
||||
]
|
||||
|
||||
if (is_mac) {
|
||||
libs = [
|
||||
frameworks = [
|
||||
"AppKit.framework",
|
||||
"QuartzCore.framework",
|
||||
]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user