X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fstate_trackers%2Fxorg%2Fxorg_exa.h;h=f2cefe23b99df79aafe6728d124bf6ffc2a0b167;hb=601bfb5951ae303b54b4dd8a50bf0558017bf549;hp=28834e3ef50e1c2fdd1b34c9d9c2916ef21501c1;hpb=6d629d4aa211d098fe9541d0b644cf67ee1d7019;p=mesa.git diff --git a/src/gallium/state_trackers/xorg/xorg_exa.h b/src/gallium/state_trackers/xorg/xorg_exa.h index 28834e3ef50..f2cefe23b99 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.h +++ b/src/gallium/state_trackers/xorg/xorg_exa.h @@ -16,11 +16,7 @@ struct exa_context ExaDriverPtr pExa; struct pipe_context *pipe; struct pipe_screen *scrn; - struct cso_context *cso; - struct xorg_shaders *shaders; - - struct pipe_constant_buffer vs_const_buffer; - struct pipe_constant_buffer fs_const_buffer; + struct xorg_renderer *renderer; struct pipe_texture *bound_textures[MAX_EXA_SAMPLERS]; int num_bound_samplers; @@ -28,21 +24,38 @@ struct exa_context float solid_color[4]; boolean has_solid_color; + boolean accel; + + /* float[9] projective matrix bound to pictures */ struct { + float src[9]; + float mask[9]; + boolean has_src; + boolean has_mask; + } transform; + + struct { + boolean use_surface_copy; + struct exa_pixmap_priv *src; struct exa_pixmap_priv *dst; - } copy; - /* we should combine these two */ - float vertices2[4][2][4]; - float vertices3[4][3][4]; + struct pipe_surface *src_surface; + struct pipe_surface *dst_surface; + + struct pipe_texture *src_texture; + } copy; }; struct exa_pixmap_priv { + int width, height; + int flags; int tex_flags; + int picture_format; + struct pipe_texture *tex; struct pipe_texture *depth_stencil_tex; @@ -60,7 +73,7 @@ do { \ } while(0) struct pipe_surface * -exa_gpu_surface(struct exa_context *exa, struct exa_pixmap_priv *priv); +xorg_gpu_surface(struct pipe_screen *scrn, struct exa_pixmap_priv *priv); void xorg_exa_flush(struct exa_context *exa, uint pipeFlushFlags, struct pipe_fence_handle **fence);