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

Function TEST_F

trinityal/tests/SwapChainResizing.cpp:48–117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46}
47
48TEST_F( SwapChainResizing, CanResizeSwapChainWhileRendering )
49{
50 ENSURE_GPU_OR_SKIP
51 Tr2ShaderAL vs;
52 ASSERT_HRESULT_SUCCEEDED( CreatePositionOnlyVS( vs, *renderContext ) );
53
54 Tr2ShaderAL ps;
55 ASSERT_HRESULT_SUCCEEDED( CreateConstantColorPS( ps, *renderContext ) );
56
57 Tr2ShaderAL shaders[] = { vs, ps };
58 Tr2ShaderProgramAL sp;
59 ASSERT_HRESULT_SUCCEEDED( sp.Create( shaders, 2, *renderContext ) );
60
61 float vertices[] = {
62 -0.5f,
63 -0.5f,
64 0.0f,
65 -0.5f,
66 0.5f,
67 0.0f,
68 0.5f,
69 -0.5f,
70 0.0f,
71 };
72 const uint32_t vbStride = 3 * sizeof( float );
73 Tr2BufferAL vb;
74 ASSERT_HRESULT_SUCCEEDED( vb.Create( vbStride, sizeof( vertices ) / vbStride, Tr2GpuUsage::VERTEX_BUFFER, Tr2CpuUsage::NONE, vertices, *renderContext ) );
75
76 Tr2VertexDefinition definition;
77 definition.Add( Tr2VertexDefinition::FLOAT32_3, Tr2VertexDefinition::POSITION );
78
79 Tr2VertexLayoutAL vertexLayout;
80 ASSERT_HRESULT_SUCCEEDED( vertexLayout.Create( definition, *renderContext ) );
81
82 uint32_t g = 127;
83
84 auto frame = [&] {
85 if( g % 200 == 0 )
86 {
87 if( g % 400 == 0 )
88 {
89 ASSERT_HRESULT_SUCCEEDED( ResizeWindow( 400, 400 ) );
90 }
91 else
92 {
93 ASSERT_HRESULT_SUCCEEDED( ResizeWindow( 640, 480 ) );
94 }
95 }
96
97
98 ASSERT_HRESULT_SUCCEEDED( renderContext->BeginScene() );
99 ASSERT_HRESULT_SUCCEEDED( renderContext->Clear( CLEARFLAGS_TARGET, 0xff000000 | ( g & 0xff ), 1.0f ) );
100 ASSERT_HRESULT_SUCCEEDED( renderContext->SetStreamSource( 0, vb, 0, vbStride ) );
101 ASSERT_HRESULT_SUCCEEDED( renderContext->SetVertexLayout( vertexLayout ) );
102 ASSERT_HRESULT_SUCCEEDED( renderContext->SetShaderProgram( sp ) );
103 ASSERT_HRESULT_SUCCEEDED( renderContext->SetTopology( TOP_TRIANGLES ) );
104 ASSERT_HRESULT_SUCCEEDED( renderContext->SetRenderState( RS_ZENABLE, 0 ) );
105 ASSERT_HRESULT_SUCCEEDED( renderContext->SetRenderState( RS_CULLMODE, CULLMODE_NONE ) );

Callers

nothing calls this directly

Calls 15

CreatePositionOnlyVSFunction · 0.70
CreateConstantColorPSFunction · 0.70
Tr2BufferALClass · 0.50
Tr2ShaderProgramALClass · 0.50
CreateMethod · 0.45
AddMethod · 0.45
BeginSceneMethod · 0.45
ClearMethod · 0.45
SetStreamSourceMethod · 0.45
SetVertexLayoutMethod · 0.45
SetShaderProgramMethod · 0.45
SetTopologyMethod · 0.45

Tested by

no test coverage detected