you need to pass a pointer to the compiled bytecode of a vertex shader in order to create an input layout.
Just a few* questions for clarification, if you don't mind: (I also cleaned up my initial question.)
Are there any issues with passing in a null pointer?
If I use multiple draw calls for models that require different shaders, do I just release the buffer, bind all the new vertex instance data, and draw? Or do I have to re-bind/re-set all of my shaders as well since the input layouts will be different?
DrawInstanced allows you to effectively point at a different model template in one buffer, and instance info for that model from another to render the model + instance data.
Is it possible to have the VertexShader define multiple output types so that a different pixel shader could be called?
Thanks for your help!