Hi, I have a graphic rendering engine in DirectX9. Since D3DX has been deprecated, I'm working on removing it from the engine.
I was previously using ID3DXEffects to handle shaders. Without effect, it looks like I have to handle vertex and pixel shaders separately. This is not a big deal since I'm not using vertex shaders much anyway (2D game).
My problem is that, looking at the D3D9 API, there doesn't seem to be a way to access the different variables I am using in my shader. There is the IDirect3DDevice9::SetPixelShaderConstant family of methods, but they identify the parameters by index instead of a string. I'm not sure how I'm supposed to get the table that maps a variable name with its index? Another problem is I'm not seeing a function to set a texture variable in my code. I assume it has to do with samplers, but there's still an index I'm not sure what to do with.
Should I just assume that D3D9 is old so it's okay to use a deprecated (old) library (D3DX) with it, and stop worrying about having D3DX? Quite frankly, it looks like D3D9 shaders were designed to be used with D3DX, and it's hard to find doc about how to not use it since DirectX9 is starting to get old.