Files
better-genshin-impact/BetterGenshinImpact/Helpers/Extensions/EnumExtensions.cs
Shatyuka 0bea2d095a 截图优化 (#1480)
* BitBlt 优化

* BitBlt恢复Top-down

* 渲染时翻转图像

* CaptureSession引用计数

* 恢复成无拷贝Mat

* 合法性检查

* 优化截图预览窗口

* 保存截图文件必要时需要克隆一份Mat

* BitBlt内存池

* 返回拷贝就不用对Session做引用计数了

* 移除CaptureImageRes

* 优化DirectX

* 更好地处理padding

* BitBlt去掉padding

1920*1080的游戏窗口是4字节对齐的,因此不会有性能影响。这里主要用于测试。

* 修复修改窗口大小

* 合并CreateStagingTexture

* 修复设备丢失崩溃

* WGC截图支持HDR

* fix typo

* CodeQA

* 去掉1px窗口边框

* DirectX截图去掉A通道

* HDR转换使用GPU加速

---------

Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2025-05-11 01:17:18 +08:00

40 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using BetterGenshinImpact.Model;
namespace BetterGenshinImpact.Helpers.Extensions;
public static class EnumExtensions
{
public static string GetDescription(this Enum value)
{
return value.GetType()
.GetField(value.ToString())
?.GetCustomAttributes(typeof(DescriptionAttribute), false)
.Cast<DescriptionAttribute>()
.FirstOrDefault()
?.Description ?? value.ToString();
}
public static int GetOrder(this Enum value)
{
return value.GetType()
.GetField(value.ToString())
?.GetCustomAttributes(typeof(DefaultValueAttribute), false)
.Cast<DefaultValueAttribute>()
.FirstOrDefault()
?.Value as int? ?? 0;
}
public static IEnumerable<EnumItem<T>> ToEnumItems<T>() where T : Enum
{
return Enum.GetValues(typeof(T))
.Cast<T>()
.Select(EnumItem<T>.Create)
.OrderBy(x => x.Order)
.ThenBy(x => x.Value);
}
}