| /************************************************************************** |
| * |
| * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. |
| * All Rights Reserved. |
| * |
| * Permission is hereby granted, free of charge, to any person obtaining a |
| * copy of this software and associated documentation files (the |
| * "Software"), to deal in the Software without restriction, including |
| * without limitation the rights to use, copy, modify, merge, publish, |
| * distribute, sub license, and/or sell copies of the Software, and to |
| * permit persons to whom the Software is furnished to do so, subject to |
| * the following conditions: |
| * |
| * The above copyright notice and this permission notice (including the |
| * next paragraph) shall be included in all copies or substantial portions |
| * of the Software. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
| * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
| * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR |
| * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
| * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
| * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| * |
| **************************************************************************/ |
| |
| #ifndef _INTEL_INIT_H_ |
| #define _INTEL_INIT_H_ |
| |
| #include <sys/time.h> |
| #include "dri_util.h" |
| #include "i915_drm.h" |
| #include "xmlconfig.h" |
| |
| /* XXX: change name or eliminate to avoid conflict with "struct |
| * intel_region"!!! |
| */ |
| typedef struct |
| { |
| drm_handle_t handle; |
| drmSize size; /* region size in bytes */ |
| char *map; /* memory map */ |
| int offset; /* from start of video mem, in bytes */ |
| unsigned int bo_handle; /* buffer object id if available, or -1 */ |
| /** |
| * Flags if the region is tiled. |
| * |
| * Not included is Y versus X tiling. |
| */ |
| GLboolean tiled; |
| } intelRegion; |
| |
| typedef struct |
| { |
| intelRegion front; |
| intelRegion back; |
| intelRegion third; |
| intelRegion depth; |
| intelRegion tex; |
| |
| int deviceID; |
| int width; |
| int height; |
| int pitch; /* common row stride, in pixels */ |
| |
| int logTextureGranularity; |
| |
| __DRIscreenPrivate *driScrnPriv; |
| unsigned int sarea_priv_offset; |
| |
| int drmMinor; |
| |
| int irq_active; |
| int allow_batchbuffer; |
| |
| /** |
| * Configuration cache with default values for all contexts |
| */ |
| driOptionCache optionCache; |
| } intelScreenPrivate; |
| |
| |
| |
| extern GLboolean intelMapScreenRegions(__DRIscreenPrivate * sPriv); |
| |
| extern void intelUnmapScreenRegions(intelScreenPrivate * intelScreen); |
| |
| extern void |
| intelUpdateScreenFromSAREA(intelScreenPrivate * intelScreen, |
| struct drm_i915_sarea * sarea); |
| |
| extern void intelDestroyContext(__DRIcontextPrivate * driContextPriv); |
| |
| extern GLboolean intelUnbindContext(__DRIcontextPrivate * driContextPriv); |
| |
| extern GLboolean |
| intelMakeCurrent(__DRIcontextPrivate * driContextPriv, |
| __DRIdrawablePrivate * driDrawPriv, |
| __DRIdrawablePrivate * driReadPriv); |
| |
| extern void intelSwapBuffers(__DRIdrawablePrivate * dPriv); |
| |
| extern void |
| intelCopySubBuffer(__DRIdrawablePrivate * dPriv, int x, int y, int w, int h); |
| |
| extern struct intel_context *intelScreenContext(intelScreenPrivate *intelScreen); |
| |
| #endif |