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

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

Revision 1.1, Wed Jan 26 10:31:11 2000 UTC (17 years, 9 months ago) by ljp
Branch: MAIN

Initial revision

# 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.0 (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) 1989-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.

#
#   This awk script is used to generate glxopcodes.h
#
#   $Date$ $Revision$
#   $Header$
#

function initialize() {

    typeMapFile = TYPEMAP;
    section = SECTION;
    prefix = PREFIX;

    init_case();

    if (section ~ /single/) {
	printf "/* Opcodes for single commands (part of GLX command space) */\n\n";
	opcodeType = "glxsingle";
    } else if (section == "glx") {
	printf "/* Opcodes for GLX commands */\n\n";
	opcodeType = "glxopcode";
    } else if (section ~ /vendpriv/) {
	printf "/* Opcodes for Vendor Private commands */\n\n";
	opcodeType = "glxvendorpriv";
    } else if (section ~ /vendorglx/) {
	printf "/* Opcodes for GLX vendor private commands */\n\n";
	opcodeType = "glxvendorglx";
    } else {
	printf "/* Opcodes for rendering commands */\n\n";
	opcodeType = "glxropcode";
    }
    opcodeFormat = "#define %s%-25s  %3d\n" ;

} # function intialize

function main( i, param, cmdlen, invarsize) {

    if ("vectorequiv" in propList) return;
    if (!(opcodeType in propList)) return;

    opcode = propList[opcodeType];
    sub(",", "", opcode);
    printf opcodeFormat, prefix, functionName, opcode;

}

function finalize()
{
    printf "\n\n";
}

# Return a string that's 'str' but with the 'n' char lower case.
function lower_char( str, n) {
    len = length(str);
    prefix = substr(str,1,n-1);
    suffix = substr(str,n+1,len-n);
    newstr = "";
    c = substr(str,n,1);
    if (c in lowcase) {
	newstr = prefix lowcase[c] suffix;
    } else {
	newstr = str;
    }
    return newstr;
}

function init_case () {
    lowcase["A"] = "a"
    lowcase["B"] = "b"
    lowcase["C"] = "c"
    lowcase["D"] = "d"
    lowcase["E"] = "e"
    lowcase["F"] = "f"
    lowcase["G"] = "g"
    lowcase["H"] = "h"
    lowcase["I"] = "i"
    lowcase["J"] = "j"
    lowcase["K"] = "k"
    lowcase["L"] = "l"
    lowcase["M"] = "m"
    lowcase["N"] = "n"
    lowcase["O"] = "o"
    lowcase["P"] = "p"
    lowcase["Q"] = "q"
    lowcase["R"] = "r"
    lowcase["S"] = "s"
    lowcase["T"] = "t"
    lowcase["U"] = "u"
    lowcase["V"] = "v"
    lowcase["W"] = "w"
    lowcase["X"] = "x"
    lowcase["Y"] = "y"
    lowcase["Z"] = "z"
}