summaryrefslogtreecommitdiffstats
path: root/gfx/angle/src/libANGLE/gen_format_map.py
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/angle/src/libANGLE/gen_format_map.py')
-rw-r--r--gfx/angle/src/libANGLE/gen_format_map.py187
1 files changed, 0 insertions, 187 deletions
diff --git a/gfx/angle/src/libANGLE/gen_format_map.py b/gfx/angle/src/libANGLE/gen_format_map.py
deleted file mode 100644
index b67f42784..000000000
--- a/gfx/angle/src/libANGLE/gen_format_map.py
+++ /dev/null
@@ -1,187 +0,0 @@
-#!/usr/bin/python
-# Copyright 2016 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_format_map.py:
-# Code generation for GL format map. The format map matches between
-# {format,type} and internal format.
-
-from datetime import date
-import sys
-
-sys.path.append('renderer')
-import angle_format
-
-template_cpp = """// GENERATED FILE - DO NOT EDIT.
-// Generated by {script_name} using data from {data_source_name}.
-// ES3 format info from {es3_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.
-//
-// format_map:
-// Determining the sized internal format from a (format,type) pair.
-// Also check es3 format combinations for validity.
-
-#include "angle_gl.h"
-#include "common/debug.h"
-
-namespace gl
-{{
-
-GLenum GetSizedFormatInternal(GLenum format, GLenum type)
-{{
- switch (format)
- {{
-{format_cases} case GL_NONE:
- return GL_NONE;
-
- default:
- break;
- }}
-
- return GL_NONE;
-}}
-
-bool ValidES3Format(GLenum format)
-{{
- switch (format)
- {{
-{es3_format_cases} return true;
-
- default:
- return false;
- }}
-}}
-
-bool ValidES3Type(GLenum type)
-{{
- switch (type)
- {{
-{es3_type_cases} return true;
-
- default:
- return false;
- }}
-}}
-
-bool ValidES3FormatCombination(GLenum format, GLenum type, GLenum internalFormat)
-{{
- ASSERT(ValidES3Format(format) && ValidES3Type(type));
-
- switch (format)
- {{
-{es3_combo_cases} default:
- UNREACHABLE();
- break;
- }}
-
- return false;
-}}
-
-}} // namespace gl
-"""
-
-template_format_case = """ case {format}:
- switch (type)
- {{
-{type_cases} default:
- break;
- }}
- break;
-
-"""
-
-template_simple_case = """ case {key}:
- return {result};
-"""
-
-template_es3_combo_type_case = """ case {type}:
- {{
- switch (internalFormat)
- {{
-{internal_format_cases} return true;
- default:
- break;
- }}
- break;
- }}
-"""
-
-def parse_type_case(type, result):
- return template_simple_case.format(
- key = type, result = result)
-
-def parse_format_case(format, type_map):
- type_cases = ""
- for type, internal_format in sorted(type_map.iteritems()):
- type_cases += parse_type_case(type, internal_format)
- return template_format_case.format(
- format = format, type_cases = type_cases)
-
-input_script = 'format_map_data.json'
-
-format_map = angle_format.load_json(input_script)
-
-format_cases = ""
-
-for format, type_map in sorted(format_map.iteritems()):
- format_cases += parse_format_case(format, type_map)
-
-combo_data_file = 'es3_format_type_combinations.json'
-es3_combo_data = angle_format.load_json(combo_data_file)
-combo_data = [combo for sublist in es3_combo_data.values() for combo in sublist]
-
-types = set()
-formats = set()
-combos = {}
-
-for internal_format, format, type in combo_data:
- types.update([type])
- formats.update([format])
- if format not in combos:
- combos[format] = {}
- if type not in combos[format]:
- combos[format][type] = [internal_format]
- else:
- combos[format][type] += [internal_format]
-
-es3_format_cases = ""
-
-for format in sorted(formats):
- es3_format_cases += " case " + format + ":\n"
-
-es3_type_cases = ""
-
-for type in sorted(types):
- es3_type_cases += " case " + type + ":\n"
-
-es3_combo_cases = ""
-
-for format, type_combos in combos.iteritems():
- this_type_cases = ""
- for type, combos in type_combos.iteritems():
- internal_format_cases = ""
- for internal_format in combos:
- internal_format_cases += " case " + internal_format + ":\n"
-
- this_type_cases += template_es3_combo_type_case.format(
- type = type, internal_format_cases = internal_format_cases)
-
- es3_combo_cases += template_format_case.format(
- format = format, type_cases = this_type_cases)
-
-with open('format_map_autogen.cpp', 'wt') as out_file:
- output_cpp = template_cpp.format(
- script_name = sys.argv[0],
- data_source_name = input_script,
- es3_data_source_name = combo_data_file,
- copyright_year = date.today().year,
- format_cases = format_cases,
- es3_format_cases = es3_format_cases,
- es3_type_cases = es3_type_cases,
- es3_combo_cases = es3_combo_cases)
- out_file.write(output_cpp)
- out_file.close()