MCPcopy Create free account
hub / github.com/carbonengine/trinity / Create

Method Create

trinityal/stub/Tr2TextureALStub.cpp:18–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16}
17
18ALResult Tr2TextureAL::Create( const Tr2BitmapDimensions& desc, const Tr2MsaaDesc& msaa, Tr2GpuUsage::Type gpuUsage, Tr2CpuUsage::Type cpuUsage, Tr2SubresourceData* initialData, Tr2PrimaryRenderContextAL& renderContext )
19{
20 Destroy();
21
22 if( HasBufferFlags( gpuUsage ) )
23 {
24 return E_INVALIDARG;
25 }
26
27 if( !renderContext.IsValid() )
28 {
29 return E_FAIL;
30 }
31 if( msaa.samples > 1 )
32 {
33 if( HasFlag( gpuUsage, Tr2GpuUsage::UNORDERED_ACCESS ) )
34 {
35 return E_INVALIDARG;
36 }
37 if( cpuUsage != Tr2CpuUsage::NONE )
38 {
39 return E_INVALIDARG;
40 }
41 if( desc.GetType() != Tr2RenderContextEnum::TEX_TYPE_2D )
42 {
43 return E_INVALIDARG;
44 }
45 }
46 if( desc.GetType() != Tr2RenderContextEnum::TEX_TYPE_2D )
47 {
48 if( desc.GetType() == Tr2RenderContextEnum::TEX_TYPE_CUBE )
49 {
50 if( desc.GetArraySize() != 6 )
51 {
52 return E_INVALIDARG;
53 }
54 }
55 else if( desc.GetArraySize() > 1 )
56 {
57 return E_INVALIDARG;
58 }
59 }
60 if( desc.GetType() != Tr2RenderContextEnum::TEX_TYPE_2D && HasFlag( gpuUsage, Tr2GpuUsage::DEPTH_STENCIL ) )
61 {
62 return E_INVALIDARG;
63 }
64 if( msaa.samples > 1 && desc.GetTrueMipCount() > 1 )
65 {
66 return E_INVALIDARG;
67 }
68 if( HasFlag( gpuUsage, Tr2GpuUsage::RENDER_TARGET ) && HasFlag( cpuUsage, Tr2CpuUsage::WRITE ) )
69 {
70 return E_INVALIDARG;
71 }
72 if( HasFlag( gpuUsage, Tr2GpuUsage::DEPTH_STENCIL ) && cpuUsage != Tr2CpuUsage::NONE )
73 {
74 return E_INVALIDARG;
75 }

Callers

nothing calls this directly

Calls 8

DestroyFunction · 0.85
HasBufferFlagsFunction · 0.85
IsWritableFunction · 0.85
GetTrueMipCountMethod · 0.80
HasFlagFunction · 0.70
IsValidMethod · 0.45
GetTypeMethod · 0.45
GetArraySizeMethod · 0.45

Tested by

no test coverage detected