Advertisement Jump to content
Sign in to follow this  

Loading Precompiled Shader?

This topic is 2233 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm trying to remove the effects pipeline from my program and have realized that I have no idea how to load a precompiled shader without the effects functions. I've found example code that uses D3DReadFileToBlob, but that is only available in the Windows 8 SDK (I'm using the June 2010 SDK). I've even tried linking to the d3dcompiler.lib in the Windows 8 SDK, but still can't use the function. Right now, I'm attempting to read in the file through std::ifstream into a std::vector<char>, then use CreateVertexShader(). Is this the right way to go? Also, how do I set up the input layout afterwards? Most of the examples I see store the byte code in a ID3DBlob, so they are able to use ID3DBlob::GetBufferPointer() to retrieve the void *pShaderBytecodeWithInputSignature required in the CreateInputLayout() function. My byte code is stored in a vector<char>, so how do I do this? Can I create a ID3DBlob from a vector<char>?

Share this post

Link to post
Share on other sites
I save on the file the size of the blob then the blob itself. Then read like this straight into the blob:*)vs_blob->GetBufferPointer() , vs_size);

After that, once you have the blob, you go on creating your shader as usual.

Share this post

Link to post
Share on other sites
Hi, im doing it this way:

filename is for example: L"Shadows.cso" (or what ever format you have, maybe .fxo)
mFX is : ID3DX11Effect* mFX;

std::ifstream fin(filename, std::ios::binary);
fin.seekg(0, std::ios_base::end);
int size = (int)fin.tellg();
fin.seekg(0, std::ios_base::beg);
std::vector<char> compiledShader(size);;amp;amp;compiledShader[0], size);

D3DX11CreateEffectFromMemory(&compiledShader[0], size, 0, device, &mFX);

Regards Edited by ~Helgon

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!