Hash :
2aaa7b4e
        
        Author :
  
        
        Date :
2018-01-12T17:17:27
        
      
Add GLES1 targets and stub entry points. * Create a new libGLESv1_CM target. * Merge all autogenerated extension entry points into one file. * Allow creation of ES1 contexts. BUG=angleproject:2306 Change-Id: I446258363a96a3c37d657089dd7c1cff0fa3cf78 Reviewed-on: https://chromium-review.googlesource.com/865718 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
#!python
# Copyright 2017 The ANGLE Project Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# gen_proc_table.py:
#  Code generation for entry point loading tables.
# TODO(jmadill): Should be part of entry point generation.
import sys
from datetime import date
data_source_name = "proc_table_data.json"
out_file_name = "proc_table_autogen.cpp"
template_cpp = """// GENERATED FILE - DO NOT EDIT.
// Generated by {script_name} using data from {data_source_name}.
//
// Copyright {copyright_year} The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// getProcAddress loader table:
//   Mapping from a string entry point name to function address.
//
#include "libGLESv2/proc_table.h"
#include "libGLESv2/entry_points_egl.h"
#include "libGLESv2/entry_points_egl_ext.h"
#include "libGLESv2/entry_points_gles_1_0_autogen.h"
#include "libGLESv2/entry_points_gles_2_0_autogen.h"
#include "libGLESv2/entry_points_gles_2_0_ext.h"
#include "libGLESv2/entry_points_gles_3_0_autogen.h"
#include "libGLESv2/entry_points_gles_3_1_autogen.h"
#include "libGLESv2/entry_points_gles_ext_autogen.h"
#include "platform/Platform.h"
#define P(FUNC) reinterpret_cast<__eglMustCastToProperFunctionPointerType>(FUNC)
namespace egl
{{
ProcEntry g_procTable[] = {{
{proc_data}
}};
size_t g_numProcs = {num_procs};
}}  // namespace egl
"""
sys.path.append('../libANGLE/renderer')
import angle_format
json_data = angle_format.load_json(data_source_name)
all_functions = {}
for description, functions in json_data.iteritems():
    for function in functions:
        if function.startswith("gl"):
            all_functions[function] = "gl::" + function[2:]
        elif function.startswith("egl"):
            all_functions[function] = "egl::" + function[3:]
        else:
            all_functions[function] = function
proc_data = [('    {"%s", P(%s)}' % (func, angle_func)) for func, angle_func in sorted(all_functions.iteritems())]
with open(out_file_name, 'wb') as out_file:
    output_cpp = template_cpp.format(
        script_name = sys.argv[0],
        data_source_name = data_source_name,
        copyright_year = date.today().year,
        proc_data = ",\n".join(proc_data),
        num_procs = len(proc_data))
    out_file.write(output_cpp)
    out_file.close()