[vlc-devel] [PATCH] Direct3D: implement HLSL pixel shading in the rendering pipeline

Rafaël Carré funman at videolan.org
Tue Jan 28 14:25:03 CET 2014

On 01/28/14 13:43, Felix Abecassis wrote:
> 2014-01-28 Rafaël Carré <funman at videolan.org>:
>> Do you want to add these to mingw-w64 ?
>> It is very easy and I will gladly guide you through the process.
>> In fact it might be as easy as pointing it out to jacek (caban) who's
>> working
>> on DirectX in wine (among other things).
> Sure, that would be great.

Great, let's continue on IRC!

>> msg_Err ?
> Not using shaders is not a fatal error for the module so I think
> msg_Warn should be used.

Well at this point shaders have been enabled, so while the module can
the shaders code could have run but didn't because of an error.

>> nit picking: no need to set sys->d3dx_shader if it's already NULL
> I think both way are fine, but still I prefer to do:
> if (A)
>     Destroy(A);
> if (B)
>     Destroy(B);
> A = NULL;
> B = NULL;
> Instead of:
> if (A) {
>     Destroy(A);
>     A = NULL;
> }
> if (B) {
> ...
> Direct3DDestroy() uses the former.


>> What's shaderPasses value here?
> A technique can have several passes, right now we only have only one
> pass in the provided shaders but we could have more. For instance the
> grayscale shader:
> technique Grayscale
> {
>     pass p1
>     {
>         PixelShader = compile ps_2_0 grayscale();
>     }
> }

Sorry, I meant it is not initialized if Effect_Begin() fails.

>> hd3d9x_dll is always non NULL
> No, see first line :).

Oops right, I would return directly if LibraryLoad fails though, since
there is no context to clean up.

>>> +static HINSTANCE Direct3DLoadShaderLibrary()
>> (void)?
> I think it's only needed when declaring a prototype.

I don't know but I prefer the prototype and the definition to match.

> Thanks for your feedback.

By the way I meant to ask but didn't in my first mail,
What is this for? :) I honestly have no idea.

More information about the vlc-devel mailing list