1733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt/**************************************************************************
2733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt *
3877128505431adaf817dc8069172ebe4a1cdf5d8José Fonseca * Copyright 2003 VMware, Inc.
4733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * All Rights Reserved.
5733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt *
6733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * Permission is hereby granted, free of charge, to any person obtaining a
7733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * copy of this software and associated documentation files (the
8733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * "Software"), to deal in the Software without restriction, including
9733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * without limitation the rights to use, copy, modify, merge, publish,
10733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * distribute, sub license, and/or sell copies of the Software, and to
11733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * permit persons to whom the Software is furnished to do so, subject to
12733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * the following conditions:
13733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt *
14733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * The above copyright notice and this permission notice (including the
15733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * next paragraph) shall be included in all copies or substantial portions
16733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * of the Software.
17733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt *
18733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21877128505431adaf817dc8069172ebe4a1cdf5d8José Fonseca * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
22733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt *
26733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt **************************************************************************/
27733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt
28733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt#ifndef INTEL_BLIT_H
29733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt#define INTEL_BLIT_H
30733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt
31733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt#include "intel_context.h"
32733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt
33733d32f3765be84a7e908df7e99a278cadcee853Eric Anholtextern void intelCopyBuffer(const __DRIdrawable * dpriv,
34733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                            const drm_clip_rect_t * rect);
35733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt
36733d32f3765be84a7e908df7e99a278cadcee853Eric Anholtextern GLbitfield intelClearWithBlit(struct gl_context * ctx, GLbitfield mask);
37733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt
38733d32f3765be84a7e908df7e99a278cadcee853Eric Anholtbool
39733d32f3765be84a7e908df7e99a278cadcee853Eric AnholtintelEmitCopyBlit(struct intel_context *intel,
40733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                              GLuint cpp,
41733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                              GLshort src_pitch,
42733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                              drm_intel_bo *src_buffer,
43733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                              GLuint src_offset,
44733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt			      uint32_t src_tiling,
45733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                              GLshort dst_pitch,
46733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                              drm_intel_bo *dst_buffer,
47733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                              GLuint dst_offset,
48733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt			      uint32_t dst_tiling,
49733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                              GLshort srcx, GLshort srcy,
50733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                              GLshort dstx, GLshort dsty,
51733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                              GLshort w, GLshort h,
52733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt			      GLenum logicop );
53733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt
54733d32f3765be84a7e908df7e99a278cadcee853Eric Anholtbool intel_miptree_blit(struct intel_context *intel,
55733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                        struct intel_mipmap_tree *src_mt,
56733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                        int src_level, int src_slice,
57733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                        uint32_t src_x, uint32_t src_y, bool src_flip,
58733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                        struct intel_mipmap_tree *dst_mt,
59733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                        int dst_level, int dst_slice,
60733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                        uint32_t dst_x, uint32_t dst_y, bool dst_flip,
61733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                        uint32_t width, uint32_t height,
62733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt                        GLenum logicop);
63733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt
64733d32f3765be84a7e908df7e99a278cadcee853Eric Anholtbool
65733d32f3765be84a7e908df7e99a278cadcee853Eric AnholtintelEmitImmediateColorExpandBlit(struct intel_context *intel,
66733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt				  GLuint cpp,
67733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt				  GLubyte *src_bits, GLuint src_size,
68733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt				  GLuint fg_color,
69733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt				  GLshort dst_pitch,
70733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt				  drm_intel_bo *dst_buffer,
71733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt				  GLuint dst_offset,
72733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt				  uint32_t dst_tiling,
73733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt				  GLshort x, GLshort y,
74733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt				  GLshort w, GLshort h,
75733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt				  GLenum logic_op);
76733d32f3765be84a7e908df7e99a278cadcee853Eric Anholtvoid intel_emit_linear_blit(struct intel_context *intel,
77733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt			    drm_intel_bo *dst_bo,
78733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt			    unsigned int dst_offset,
79733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt			    drm_intel_bo *src_bo,
80733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt			    unsigned int src_offset,
81733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt			    unsigned int size);
82733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt
83733d32f3765be84a7e908df7e99a278cadcee853Eric Anholt#endif
84