Home | History | Annotate | Download | only in i965
      1 /*
      2  * Copyright 2003 VMware, Inc.
      3  * All Rights Reserved.
      4  *
      5  * Permission is hereby granted, free of charge, to any person obtaining a
      6  * copy of this software and associated documentation files (the
      7  * "Software"), to deal in the Software without restriction, including
      8  * without limitation the rights to use, copy, modify, merge, publish,
      9  * distribute, sublicense, and/or sell copies of the Software, and to
     10  * permit persons to whom the Software is furnished to do so, subject to
     11  * the following conditions:
     12  *
     13  * The above copyright notice and this permission notice (including the
     14  * next paragraph) shall be included in all copies or substantial portions
     15  * of the Software.
     16  *
     17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     18  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     19  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
     20  * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
     21  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
     22  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
     23  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     24  */
     25 
     26 #ifndef INTEL_BLIT_H
     27 #define INTEL_BLIT_H
     28 
     29 #include "brw_context.h"
     30 
     31 bool
     32 intelEmitCopyBlit(struct brw_context *brw,
     33                   GLuint cpp,
     34                   int32_t src_pitch,
     35                   drm_intel_bo *src_buffer,
     36                   GLuint src_offset,
     37                   uint32_t src_tiling,
     38                   uint32_t src_tr_mode,
     39                   int32_t dst_pitch,
     40                   drm_intel_bo *dst_buffer,
     41                   GLuint dst_offset,
     42                   uint32_t dst_tiling,
     43                   uint32_t dst_tr_mode,
     44                   GLshort srcx, GLshort srcy,
     45                   GLshort dstx, GLshort dsty,
     46                   GLshort w, GLshort h,
     47                   GLenum logicop);
     48 
     49 bool intel_miptree_blit_compatible_formats(mesa_format src, mesa_format dst);
     50 
     51 bool intel_miptree_blit(struct brw_context *brw,
     52                         struct intel_mipmap_tree *src_mt,
     53                         int src_level, int src_slice,
     54                         uint32_t src_x, uint32_t src_y, bool src_flip,
     55                         struct intel_mipmap_tree *dst_mt,
     56                         int dst_level, int dst_slice,
     57                         uint32_t dst_x, uint32_t dst_y, bool dst_flip,
     58                         uint32_t width, uint32_t height,
     59                         GLenum logicop);
     60 
     61 bool intel_miptree_copy(struct brw_context *brw,
     62                         struct intel_mipmap_tree *src_mt,
     63                         int src_level, int src_slice,
     64                         uint32_t src_x, uint32_t src_y,
     65                         struct intel_mipmap_tree *dst_mt,
     66                         int dst_level, int dst_slice,
     67                         uint32_t dst_x, uint32_t dst_y,
     68                         uint32_t src_width, uint32_t src_height);
     69 
     70 bool
     71 intelEmitImmediateColorExpandBlit(struct brw_context *brw,
     72 				  GLuint cpp,
     73 				  GLubyte *src_bits, GLuint src_size,
     74 				  GLuint fg_color,
     75 				  GLshort dst_pitch,
     76 				  drm_intel_bo *dst_buffer,
     77 				  GLuint dst_offset,
     78 				  uint32_t dst_tiling,
     79 				  GLshort x, GLshort y,
     80 				  GLshort w, GLshort h,
     81 				  GLenum logic_op);
     82 void intel_emit_linear_blit(struct brw_context *brw,
     83 			    drm_intel_bo *dst_bo,
     84 			    unsigned int dst_offset,
     85 			    drm_intel_bo *src_bo,
     86 			    unsigned int src_offset,
     87 			    unsigned int size);
     88 
     89 #endif
     90