[3/6] WineD3D: Handle SM 3.0 varyings in ARB

Henri Verbeet hverbeet at gmail.com
Wed Jun 17 13:24:10 CDT 2009


> @@ -1465,9 +1471,14 @@ struct IWineD3DDeviceImpl
>      const struct fragment_pipeline *frag_pipe;
>      const struct blit_shader *blitter;
>
> +    struct ps_signature *pshader_signatures;
> +    unsigned int num_pshader_signatures;
> +    unsigned int pshader_signatures_size;
> +    DWORD ps_sig_number;
> +
>      unsigned int max_ffp_textures, max_ffp_texture_stages;
>      DWORD d3d_vshader_constantF, d3d_pshader_constantF; /* Advertised d3d caps, not GL ones */
> -    DWORD vs_clipping;
> +    DWORD vs_clipping, need_ps_signatures;
>
>      WORD view_ident : 1;                /* true iff view matrix is identity */
>      WORD untransformed : 1;
> @@ -2730,6 +2741,7 @@ typedef struct IWineD3DPixelShaderImpl {
>      BOOL                        color0_mov;
>      DWORD                       color0_reg;
>
> +    DWORD                       input_signature_idx;

Please keep this private to the ARB backend. (I.e., store these in
struct shader_arb_priv.)
Also, it looks like you're trying to write a binary search tree. Would
you like to use wine_rb_tree instead?



More information about the wine-devel mailing list