aboutsummaryrefslogtreecommitdiff
path: root/src/gen_dispatch.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/gen_dispatch.py')
-rwxr-xr-xsrc/gen_dispatch.py26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/gen_dispatch.py b/src/gen_dispatch.py
index f4d0f31..3daad84 100755
--- a/src/gen_dispatch.py
+++ b/src/gen_dispatch.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright © 2013 Intel Corporation
@@ -466,6 +467,7 @@ class Generator(object):
func.args_decl))
def write_header_header(self, out_file):
+ self.close()
self.out_file = open(out_file, 'w')
self.outln('/* GL dispatch header.')
@@ -514,9 +516,17 @@ class Generator(object):
self.outln('typedef uint32_t khronos_uint32_t;')
self.outln('typedef uint64_t khronos_uint64_t;')
self.outln('typedef float khronos_float_t;')
- self.outln('typedef long khronos_intptr_t;')
- self.outln('typedef long khronos_ssize_t;')
- self.outln('typedef unsigned long khronos_usize_t;')
+ self.outln('#ifdef _WIN64')
+ self.outln('typedef signed long long int khronos_intptr_t;')
+ self.outln('typedef unsigned long long int khronos_uintptr_t;')
+ self.outln('typedef signed long long int khronos_ssize_t;')
+ self.outln('typedef unsigned long long int khronos_usize_t;')
+ self.outln('#else')
+ self.outln('typedef signed long int khronos_intptr_t;')
+ self.outln('typedef unsigned long int khronos_uintptr_t;')
+ self.outln('typedef signed long int khronos_ssize_t;')
+ self.outln('typedef unsigned long int khronos_usize_t;')
+ self.outln('#endif')
self.outln('typedef uint64_t khronos_utime_nanoseconds_t;')
self.outln('typedef int64_t khronos_stime_nanoseconds_t;')
self.outln('#define KHRONOS_MAX_ENUM 0x7FFFFFFF')
@@ -525,7 +535,6 @@ class Generator(object):
self.outln(' KHRONOS_TRUE = 1,')
self.outln(' KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM')
self.outln('} khronos_boolean_enum_t;')
- self.outln('typedef uintptr_t khronos_uintptr_t;')
if self.target == "glx":
self.outln('#include <X11/Xlib.h>')
@@ -756,6 +765,7 @@ class Generator(object):
self.outln('')
def write_source(self, f):
+ self.close()
self.out_file = open(f, 'w')
self.outln('/* GL dispatch code.')
@@ -848,6 +858,12 @@ class Generator(object):
for func in self.sorted_functions:
self.write_function_pointer(func)
+ def close(self):
+ if self.out_file:
+ self.out_file.close()
+ self.out_file = None
+
+
argparser = argparse.ArgumentParser(description='Generate GL dispatch wrappers.')
argparser.add_argument('files', metavar='file.xml', nargs='+', help='GL API XML files to be parsed')
argparser.add_argument('--outputdir', metavar='dir', required=False, help='Destination directory for files (default to current dir)')
@@ -912,3 +928,5 @@ for f in args.files:
generator.write_header(os.path.join(includedir, name + '_generated.h'))
if build_source:
generator.write_source(os.path.join(srcdir, name + '_generated_dispatch.c'))
+
+ generator.close()