MCPcopy Create free account
hub / github.com/defold/defold / Initialize

Method Initialize

engine/graphics/src/test/test_app_graphics.cpp:210–247  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

208 dmGraphics::HVertexBuffer m_VertexBuffer;
209
210 void Initialize(EngineCtx* engine) override
211 {
212 const float vertex_data_no_index[] = {
213 // Position // UV Coordinates
214 -0.5f, -0.5f, 0.0f, 0.0f, // Bottom-left
215 0.5f, -0.5f, 1.0f, 0.0f, // Bottom-right
216 -0.5f, 0.5f, 0.0f, 1.0f, // Top-left
217
218 0.5f, -0.5f, 1.0f, 0.0f, // Bottom-right
219 0.5f, 0.5f, 1.0f, 1.0f, // Top-right
220 -0.5f, 0.5f, 0.0f, 1.0f, // Top-left
221 };
222
223 m_VertexBuffer = dmGraphics::NewVertexBuffer(engine->m_GraphicsContext, sizeof(vertex_data_no_index), (void*) vertex_data_no_index, dmGraphics::BUFFER_USAGE_STATIC_DRAW);
224
225 dmGraphics::HVertexStreamDeclaration stream_declaration = dmGraphics::NewVertexStreamDeclaration(engine->m_GraphicsContext);
226 dmGraphics::AddVertexStream(stream_declaration, "pos", 2, dmGraphics::TYPE_FLOAT, false);
227 dmGraphics::AddVertexStream(stream_declaration, "texcoord", 2, dmGraphics::TYPE_FLOAT, false);
228 m_VertexDeclaration = dmGraphics::NewVertexDeclaration(engine->m_GraphicsContext, stream_declaration);
229
230 dmGraphics::ShaderDesc* shader_desc = new dmGraphics::ShaderDesc();
231
232 #if defined(DM_PLATFORM_VENDOR)
233 AddShader(shader_desc, dmGraphics::ShaderDesc::LANGUAGE_HLSL_50, dmGraphics::ShaderDesc::SHADER_TYPE_VERTEX, (uint8_t*) graphics_assets::vendor_vertex_program, sizeof(graphics_assets::vendor_vertex_program));
234 AddShader(shader_desc, dmGraphics::ShaderDesc::LANGUAGE_HLSL_50, dmGraphics::ShaderDesc::SHADER_TYPE_FRAGMENT, (uint8_t*) graphics_assets::vendor_fragment_program, sizeof(graphics_assets::vendor_fragment_program));
235 #else
236 assert(0); // TODO
237 #endif
238
239 AddShaderResource(shader_desc, "pos", dmGraphics::ShaderDesc::ShaderDataType::SHADER_TYPE_VEC2, 0, 0, BINDING_TYPE_INPUT, dmGraphics::SHADER_STAGE_FLAG_VERTEX);
240 AddShaderResource(shader_desc, "texcoord", dmGraphics::ShaderDesc::ShaderDataType::SHADER_TYPE_VEC2, 1, 0, BINDING_TYPE_INPUT, dmGraphics::SHADER_STAGE_FLAG_VERTEX);
241 // TODO: Test resources
242 // AddShaderResource(&shader_desc, "Test", dmGraphics::ShaderDesc::SHADER_TYPE_UNIFORM_BUFFER, 0, 1, BINDING_TYPE_UNIFORM_BUFFER, 0);
243
244 m_Program = dmGraphics::NewProgram(engine->m_GraphicsContext, shader_desc, 0, 0);
245
246 DeleteShaderDesc(shader_desc);
247 }
248
249 void Execute(EngineCtx* engine) override
250 {

Callers

nothing calls this directly

Calls 9

NewVertexBufferFunction · 0.85
AddVertexStreamFunction · 0.85
NewVertexDeclarationFunction · 0.85
AddShaderFunction · 0.85
AddShaderResourceFunction · 0.85
NewProgramFunction · 0.85
DeleteShaderDescFunction · 0.85
assertFunction · 0.50

Tested by

no test coverage detected