MCPcopy Create free account
hub / github.com/beefytech/Beef / Load

Method Load

BeefySysLib/platform/win/DXRenderDevice.cpp:367–507  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

365}
366
367bool DXShader::Load()
368{
369 //HRESULT hr;
370
371 ID3D10Blob* errorMessage = NULL;
372 ID3D10Blob* vertexShaderBuffer = NULL;
373 ID3D10Blob* pixelShaderBuffer = NULL;
374
375 void* memPtr = NULL;
376 int memSize = 0;
377 if (ParseMemorySpan(mSrcPath, memPtr, memSize))
378 {
379 int crPos = (int)mSrcPath.IndexOf('\n');
380 if (crPos != -1)
381 {
382 void* memPtr2 = NULL;
383 int memSize2 = 0;
384 if (ParseMemorySpan(mSrcPath.Substring(crPos + 1), memPtr2, memSize2))
385 {
386 D3D10CreateBlob(memSize, &vertexShaderBuffer);
387 memcpy(vertexShaderBuffer->GetBufferPointer(), memPtr, memSize);
388 D3D10CreateBlob(memSize2, &pixelShaderBuffer);
389 memcpy(pixelShaderBuffer->GetBufferPointer(), memPtr2, memSize2);
390 }
391 }
392 else
393 {
394 Span<uint8> span((uint8*)memPtr, memSize);
395 LoadDXShader(span, "VS", "vs_4_0", &vertexShaderBuffer);
396 LoadDXShader(span, "PS", "ps_4_0", &pixelShaderBuffer);
397 }
398 }
399 else
400 {
401 LoadDXShader(mSrcPath + ".fx", "VS", "vs_4_0", &vertexShaderBuffer);
402 LoadDXShader(mSrcPath + ".fx", "PS", "ps_4_0", &pixelShaderBuffer);
403 }
404
405 defer(
406 {
407 vertexShaderBuffer->Release();
408 pixelShaderBuffer->Release();
409 });
410
411 mHas2DPosition = false;
412 mVertexSize = 0;
413 mD3DLayout = NULL;
414
415 static const char* semanticNames[] = {
416 "POSITION",
417 "POSITION",
418 "COLOR",
419 "TEXCOORD",
420 "NORMAL",
421 "BINORMAL",
422 "TANGENT",
423 "BLENDINDICES",
424 "BLENDWEIGHT",

Callers 1

LoadShaderMethod · 0.45

Calls 5

LoadDXShaderFunction · 0.85
SubstringMethod · 0.80
InitFunction · 0.50
IndexOfMethod · 0.45
ReleaseMethod · 0.45

Tested by

no test coverage detected