Home | History | Annotate | Download | only in null
      1 /**************************************************************************
      2  *
      3  * Copyright 2010 VMware, Inc.
      4  * All Rights Reserved.
      5  *
      6  * Permission is hereby granted, free of charge, to any person obtaining a
      7  * copy of this software and associated documentation files (the
      8  * "Software"), to deal in the Software without restriction, including
      9  * without limitation the rights to use, copy, modify, merge, publish,
     10  * distribute, sub license, and/or sell copies of the Software, and to
     11  * permit persons to whom the Software is furnished to do so, subject to
     12  * the following conditions:
     13  *
     14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     16  * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
     17  * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
     18  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
     19  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
     20  * USE OR OTHER DEALINGS IN THE SOFTWARE.
     21  *
     22  * The above copyright notice and this permission notice (including the
     23  * next paragraph) shall be included in all copies or substantial portions
     24  * of the Software.
     25  *
     26  **************************************************************************/
     27 
     28 /**
     29  * @file
     30  * Null software rasterizer winsys.
     31  *
     32  * There is no present support. Framebuffer data needs to be obtained via
     33  * transfers.
     34  *
     35  * @author Jose Fonseca
     36  */
     37 
     38 #include <stdio.h>
     39 
     40 #include "pipe/p_format.h"
     41 #include "util/u_memory.h"
     42 #include "state_tracker/sw_winsys.h"
     43 #include "null_sw_winsys.h"
     44 
     45 
     46 static boolean
     47 null_sw_is_displaytarget_format_supported(struct sw_winsys *ws,
     48                                           unsigned tex_usage,
     49                                           enum pipe_format format )
     50 {
     51    return FALSE;
     52 }
     53 
     54 
     55 static void *
     56 null_sw_displaytarget_map(struct sw_winsys *ws,
     57                           struct sw_displaytarget *dt,
     58                           unsigned flags )
     59 {
     60    assert(0);
     61    return NULL;
     62 }
     63 
     64 
     65 static void
     66 null_sw_displaytarget_unmap(struct sw_winsys *ws,
     67                             struct sw_displaytarget *dt )
     68 {
     69    assert(0);
     70 }
     71 
     72 
     73 static void
     74 null_sw_displaytarget_destroy(struct sw_winsys *winsys,
     75                               struct sw_displaytarget *dt)
     76 {
     77    assert(0);
     78 }
     79 
     80 
     81 static struct sw_displaytarget *
     82 null_sw_displaytarget_create(struct sw_winsys *winsys,
     83                              unsigned tex_usage,
     84                              enum pipe_format format,
     85                              unsigned width, unsigned height,
     86                              unsigned alignment,
     87                              unsigned *stride)
     88 {
     89    fprintf(stderr, "null_sw_displaytarget_create() returning NULL\n");
     90    return NULL;
     91 }
     92 
     93 
     94 static struct sw_displaytarget *
     95 null_sw_displaytarget_from_handle(struct sw_winsys *winsys,
     96                                   const struct pipe_resource *templet,
     97                                   struct winsys_handle *whandle,
     98                                   unsigned *stride)
     99 {
    100    return NULL;
    101 }
    102 
    103 
    104 static boolean
    105 null_sw_displaytarget_get_handle(struct sw_winsys *winsys,
    106                                  struct sw_displaytarget *dt,
    107                                  struct winsys_handle *whandle)
    108 {
    109    assert(0);
    110    return FALSE;
    111 }
    112 
    113 
    114 static void
    115 null_sw_displaytarget_display(struct sw_winsys *winsys,
    116                               struct sw_displaytarget *dt,
    117                               void *context_private)
    118 {
    119    assert(0);
    120 }
    121 
    122 
    123 static void
    124 null_sw_destroy(struct sw_winsys *winsys)
    125 {
    126    FREE(winsys);
    127 }
    128 
    129 
    130 struct sw_winsys *
    131 null_sw_create(void)
    132 {
    133    static struct sw_winsys *winsys;
    134 
    135    winsys = CALLOC_STRUCT(sw_winsys);
    136    if (!winsys)
    137       return NULL;
    138 
    139    winsys->destroy = null_sw_destroy;
    140    winsys->is_displaytarget_format_supported = null_sw_is_displaytarget_format_supported;
    141    winsys->displaytarget_create = null_sw_displaytarget_create;
    142    winsys->displaytarget_from_handle = null_sw_displaytarget_from_handle;
    143    winsys->displaytarget_get_handle = null_sw_displaytarget_get_handle;
    144    winsys->displaytarget_map = null_sw_displaytarget_map;
    145    winsys->displaytarget_unmap = null_sw_displaytarget_unmap;
    146    winsys->displaytarget_display = null_sw_displaytarget_display;
    147    winsys->displaytarget_destroy = null_sw_displaytarget_destroy;
    148 
    149    return winsys;
    150 }
    151