[BACK]Return to compsize.ls CVS log [TXT][DIR] Up to [Development] / projects / ogl-sample / main / glx / lib

File: [Development] / projects / ogl-sample / main / glx / lib / compsize.ls (download)

Revision 1.2, Wed Apr 5 06:43:47 2000 UTC (17 years, 6 months ago) by ljp
Branch: MAIN
CVS Tags: tested_with_xf86_3_3, HEAD
Changes since 1.1: +1 -1 lines

Change license version to 1.1.

##############################################################################
#
# License Applicability. Except to the extent portions of this file are
# made subject to an alternative license as permitted in the SGI Free
# Software License B, Version 1.1 (the "License"), the contents of this
# file are subject only to the provisions of the License. You may not use
# this file except in compliance with the License. You may obtain a copy
# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
# 
# http://oss.sgi.com/projects/FreeB
# 
# Note that, as provided in the License, the Software is distributed on an
# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
# PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
# 
# Original Code. The Original Code is: OpenGL Sample Implementation,
# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
# Copyright in any portions created by third parties is as indicated
# elsewhere herein. All Rights Reserved.
# 
# Additional Notice Provisions: The application programming interfaces
# established by SGI in conjunction with the Original Code are The
# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
# Window System(R) (Version 1.3), released October 19, 1998. This software
# was created using the OpenGL(R) version 1.2.1 Sample Implementation
# published by SGI, but has not been independently verified as being
# compliant with the OpenGL(R) version 1.2.1 Specification.
#
##############################################################################
#
#   Generate the list compilation routines and the GLX client transport
#   routines.
#
#   $Date$ $Revision$
#   $Header$
#
##############################################################################

function initialize() {

    # TYPEMAP should be defined on the command line that invokes libspec
    typeMapFile = TYPEMAP;
    _readWireFile();

    #
    # Skip these size routines because we can't use the sample GL's version.
    #
    skip["Map1d"];
    skip["Map1f"];
    skip["Map2d"];
    skip["Map2f"];
    
    #
    # Partial names of macros used to send each wire type.
    #
    cast["enum"] =	"LONG"
    cast["boolean"] =	"CHAR"
    cast["bitfield"] =	"LONG"
    cast["byte"] =	"CHAR"
    cast["short"] =	"SHORT"
    cast["int"] =	"LONG"
    cast["sizei"] =	"LONG"
    cast["ubyte"] =	"CHAR"
    cast["ushort"] =	"SHORT"
    cast["uint"] =	"LONG"
    cast["float"] =	"FLOAT"
    cast["clampf"] =	"FLOAT"
    cast["double"] =	"DOUBLE"
    cast["clampd"] =	"DOUBLE"
    cast["void"] =      "VOID"
      
    #
    # Byte sizes of wire types.
    #
    xfer_size["enum"] =		"4"
    xfer_size["boolean"] =	"1"
    xfer_size["bitfield"] =	"4"
    xfer_size["byte"] =		"1"
    xfer_size["short"] =	"2"
    xfer_size["int"] =		"4"
    xfer_size["sizei"] =	"4"
    xfer_size["ubyte"] =	"1"
    xfer_size["ushort"] =	"2"
    xfer_size["uint"] =		"4"
    xfer_size["float"] =	"4"
    xfer_size["clampf"] =	"4"
    xfer_size["double"] =	"8"
    xfer_size["clampd"] =	"8"
    xfer_size["void"] =         "1"		# A lie, but good enough
}

function main( i, param, cmdlen) {

    if (functionName in skip) return;
    
    #
    # Set some flags for each parameter for convenience.
    # (this function is in the list utils)
    #
    setPerParamFlags();

    #
    # Only get size routines for arrays coming "in" from server; sizes for
    # "out" arrays are returned by the server.
    #
    if (hasInCompSizeParam) {
	printf "/^GLint __gl%s_size\\\(/,/^}/ { \n", \
	  functionName;
	printf "\t print $0; \n";
	printf "\t if ($0 ~ /^}/) printf \"\\n\";\n";
	printf "} \n\n";
    }
}
    
function finalize()
{
    #
    # Grab these additional routines.
    #
    for (fname in alsoGet) {
	printf "/^GLint __gl%s_size\\\(/,/^}/ { \n", \
	  fname;
	printf "\t print $0; \n";
	printf "\t if ($0 ~ /^}/) printf \"\\n\";\n";
	printf "} \n\n";
    }
}