forked from Nominom/BCnEncoder.NET
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBc5BlockEncoder.cs
More file actions
41 lines (35 loc) · 1.06 KB
/
Copy pathBc5BlockEncoder.cs
File metadata and controls
41 lines (35 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using BCnEncoder.Shared;
using BCnEncoder.Shared.ImageFiles;
namespace BCnEncoder.Encoder
{
internal class Bc5BlockEncoder : BaseBcBlockEncoder<Bc5Block, RawBlock4X4Rgba32>
{
private readonly Bc4ComponentBlockEncoder redBlockEncoder;
private readonly Bc4ComponentBlockEncoder greenBlockEncoder;
public Bc5BlockEncoder(ColorComponent component1, ColorComponent component2)
{
redBlockEncoder = new Bc4ComponentBlockEncoder(component1);
greenBlockEncoder = new Bc4ComponentBlockEncoder(component2);
}
public override Bc5Block EncodeBlock(RawBlock4X4Rgba32 block, CompressionQuality quality)
{
return new Bc5Block
{
redBlock = redBlockEncoder.EncodeBlock(block, quality),
greenBlock = greenBlockEncoder.EncodeBlock(block, quality)
};
}
public override GlInternalFormat GetInternalFormat()
{
return GlInternalFormat.GlCompressedRedGreenRgtc2Ext;
}
public override GlFormat GetBaseInternalFormat()
{
return GlFormat.GlRg;
}
public override DxgiFormat GetDxgiFormat()
{
return DxgiFormat.DxgiFormatBc5Unorm;
}
}
}