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