def json_to_table_data(format_id, json, angle_to_gl): table_data = "" parsed = { "id": format_id, "fastCopyFunctions": "NoCopyFunctions", } for k, v in json.iteritems(): parsed[k] = v if "glInternalFormat" not in parsed: parsed["glInternalFormat"] = angle_to_gl[format_id] if "fboImplementationInternalFormat" not in parsed: parsed["fboImplementationInternalFormat"] = parsed["glInternalFormat"] if "componentType" not in parsed: parsed["componentType"] = angle_format.get_component_type(format_id) if "channels" not in parsed: parsed["channels"] = angle_format.get_channels(format_id) if "bits" not in parsed: parsed["bits"] = angle_format.get_bits(format_id) # Derived values. parsed["mipGenerationFunction"] = get_mip_generation_function(parsed) parsed["colorReadFunction"] = get_color_read_function(parsed) parsed["colorWriteFunction"] = get_color_write_function(parsed) for channel in angle_format.kChannels: if parsed["bits"] != None and channel in parsed["bits"]: parsed[channel] = parsed["bits"][channel] else: parsed[channel] = "0" parsed["namedComponentType"] = get_named_component_type( parsed["componentType"]) if format_id == "B8G8R8A8_UNORM": parsed["fastCopyFunctions"] = "BGRACopyFunctions" sum_of_bits = 0 for channel in angle_format.kChannels: sum_of_bits += int(parsed[channel]) parsed["pixelBytes"] = sum_of_bits / 8 parsed["componentAlignmentMask"] = get_component_alignment_mask( parsed["channels"], parsed["bits"]) parsed["isBlock"] = "true" if format_id.endswith("_BLOCK") else "false" parsed["isFixed"] = "true" if "FIXED" in format_id else "false" return format_entry_template.format(**parsed)
def json_to_table_data(format_id, json, angle_to_gl): table_data = "" parsed = { "id": format_id, "fastCopyFunctions": "NoCopyFunctions", } for k, v in json.iteritems(): parsed[k] = v if "glInternalFormat" not in parsed: parsed["glInternalFormat"] = angle_to_gl[format_id] if "fboImplementationInternalFormat" not in parsed: parsed["fboImplementationInternalFormat"] = parsed["glInternalFormat"] if "componentType" not in parsed: parsed["componentType"] = angle_format.get_component_type(format_id) if "channels" not in parsed: parsed["channels"] = angle_format.get_channels(format_id) if "bits" not in parsed: parsed["bits"] = angle_format.get_bits(format_id) # Derived values. parsed["mipGenerationFunction"] = get_mip_generation_function(parsed) parsed["colorReadFunction"] = get_color_read_function(parsed) parsed["colorWriteFunction"] = get_color_write_function(parsed) for channel in angle_format.kChannels: if parsed["bits"] != None and channel in parsed["bits"]: parsed[channel] = parsed["bits"][channel] else: parsed[channel] = "0" parsed["namedComponentType"] = get_named_component_type(parsed["componentType"]) if format_id == "B8G8R8A8_UNORM": parsed["fastCopyFunctions"] = "BGRACopyFunctions" sum_of_bits = 0 for channel in angle_format.kChannels: sum_of_bits += int(parsed[channel]) parsed["pixelBytes"] = sum_of_bits / 8 parsed["componentAlignmentMask"] = get_component_alignment_mask( parsed["channels"], parsed["bits"]) parsed["isBlock"] = "true" if format_id.endswith("_BLOCK") else "false" parsed["isFixed"] = "true" if "FIXED" in format_id else "false" return format_entry_template.format(**parsed)
def json_to_table_data(format_id, json, angle_to_gl): table_data = "" parsed = { "id": format_id, "fastCopyFunctions": "NoCopyFunctions", } for k, v in json.iteritems(): parsed[k] = v if "glInternalFormat" not in parsed: parsed["glInternalFormat"] = angle_to_gl[format_id] if "fboImplementationInternalFormat" not in parsed: parsed["fboImplementationInternalFormat"] = parsed["glInternalFormat"] if "componentType" not in parsed: parsed["componentType"] = angle_format.get_component_type(format_id) if "channels" not in parsed: parsed["channels"] = angle_format.get_channels(format_id) if "bits" not in parsed: parsed["bits"] = angle_format.get_bits(format_id) # Derived values. parsed["mipGenerationFunction"] = get_mip_generation_function(parsed) parsed["colorReadFunction"] = get_color_read_function(parsed) parsed["colorWriteFunction"] = get_color_write_function(parsed) for channel in "ABDGLRS": if parsed["bits"] != None and channel in parsed["bits"]: parsed[channel] = parsed["bits"][channel] else: parsed[channel] = "0" parsed["namedComponentType"] = get_named_component_type( parsed["componentType"]) if format_id == "B8G8R8A8_UNORM": parsed["fastCopyFunctions"] = "BGRACopyFunctions" return format_entry_template.format(**parsed)
def json_to_table_data(format_id, json, angle_to_gl): table_data = "" parsed = { "id": format_id, "fastCopyFunctions": "NoCopyFunctions", } for k, v in json.iteritems(): parsed[k] = v if "glInternalFormat" not in parsed: parsed["glInternalFormat"] = angle_to_gl[format_id] if "fboImplementationInternalFormat" not in parsed: parsed["fboImplementationInternalFormat"] = parsed["glInternalFormat"] if "componentType" not in parsed: parsed["componentType"] = angle_format.get_component_type(format_id) if "channels" not in parsed: parsed["channels"] = angle_format.get_channels(format_id) if "bits" not in parsed: parsed["bits"] = angle_format.get_bits(format_id) # Derived values. parsed["mipGenerationFunction"] = get_mip_generation_function(parsed) parsed["colorReadFunction"] = get_color_read_function(parsed) parsed["colorWriteFunction"] = get_color_write_function(parsed) for channel in "ABDGLRS": if parsed["bits"] != None and channel in parsed["bits"]: parsed[channel] = parsed["bits"][channel] else: parsed[channel] = "0" parsed["namedComponentType"] = get_named_component_type(parsed["componentType"]) if format_id == "B8G8R8A8_UNORM": parsed["fastCopyFunctions"] = "BGRACopyFunctions" return format_entry_template.format(**parsed)
def json_to_table_data(format_id, json, angle_to_gl): table_data = "" parsed = { "id": format_id, "fastCopyFunctions": "NoCopyFunctions", } for k, v in sorted(json.items()): parsed[k] = v if "glInternalFormat" not in parsed: parsed["glInternalFormat"] = angle_to_gl[format_id] if "fboImplementationInternalFormat" not in parsed: parsed["fboImplementationInternalFormat"] = parsed["glInternalFormat"] if "componentType" not in parsed: parsed["componentType"] = angle_format.get_component_type(format_id) if "channels" not in parsed: parsed["channels"] = angle_format.get_channels(format_id) if "bits" not in parsed: parsed["bits"] = angle_format.get_bits(format_id) # Derived values. parsed["mipGenerationFunction"] = get_mip_generation_function(parsed) parsed["colorReadFunction"] = get_color_read_function(parsed) parsed["colorWriteFunction"] = get_color_write_function(parsed) for channel in angle_format.kChannels: if parsed["bits"] != None and channel in parsed["bits"]: parsed[channel] = parsed["bits"][channel] else: parsed[channel] = "0" parsed["namedComponentType"] = get_named_component_type(parsed["componentType"]) if format_id == "B8G8R8A8_UNORM": parsed["fastCopyFunctions"] = "BGRACopyFunctions" is_block = format_id.endswith("_BLOCK") pixel_bytes = 0 if is_block: assert 'blockPixelBytes' in parsed, \ 'Compressed format %s requires its block size to be specified in angle_format_data.json' % \ format_id pixel_bytes = parsed['blockPixelBytes'] else: sum_of_bits = 0 for channel in angle_format.kChannels: sum_of_bits += int(parsed[channel]) pixel_bytes = ceil_int(sum_of_bits, 8) parsed["pixelBytes"] = pixel_bytes parsed["componentAlignmentMask"] = get_component_alignment_mask(parsed["channels"], parsed["bits"]) parsed["isBlock"] = bool_str(is_block) parsed["isFixed"] = bool_str("FIXED" in format_id) parsed["isScaled"] = bool_str("SCALED" in format_id) parsed["isSRGB"] = bool_str("SRGB" in format_id) # For now we only look for the 'PLANE' substring in format string. Expand this condition # when adding support for YUV formats that have different identifying markers. parsed["isYUV"] = bool_str("PLANE" in format_id) parsed["vertexAttribType"] = "gl::VertexAttribType::" + get_vertex_attrib_type(format_id) return format_entry_template.format(**parsed)
def json_to_table_data(format_id, json, angle_to_gl): table_data = "" parsed = { "id": format_id, "fastCopyFunctions": "NoCopyFunctions", } for k, v in json.iteritems(): parsed[k] = v if "glInternalFormat" not in parsed: parsed["glInternalFormat"] = angle_to_gl[format_id] if "fboImplementationInternalFormat" not in parsed: parsed["fboImplementationInternalFormat"] = parsed["glInternalFormat"] if "componentType" not in parsed: parsed["componentType"] = angle_format.get_component_type(format_id) if "channels" not in parsed: parsed["channels"] = angle_format.get_channels(format_id) if "bits" not in parsed: parsed["bits"] = angle_format.get_bits(format_id) # Derived values. parsed["mipGenerationFunction"] = get_mip_generation_function(parsed) parsed["colorReadFunction"] = get_color_read_function(parsed) parsed["colorWriteFunction"] = get_color_write_function(parsed) for channel in angle_format.kChannels: if parsed["bits"] != None and channel in parsed["bits"]: parsed[channel] = parsed["bits"][channel] else: parsed[channel] = "0" parsed["namedComponentType"] = get_named_component_type( parsed["componentType"]) if format_id == "B8G8R8A8_UNORM": parsed["fastCopyFunctions"] = "BGRACopyFunctions" is_block = format_id.endswith("_BLOCK") pixel_bytes = 0 if is_block: assert 'blockPixelBytes' in parsed, \ 'Compressed format %s requires its block size to be specified in angle_format_data.json' % \ format_id pixel_bytes = parsed['blockPixelBytes'] else: sum_of_bits = 0 for channel in angle_format.kChannels: sum_of_bits += int(parsed[channel]) pixel_bytes = sum_of_bits / 8 parsed["pixelBytes"] = pixel_bytes parsed["componentAlignmentMask"] = get_component_alignment_mask( parsed["channels"], parsed["bits"]) parsed["isBlock"] = "true" if is_block else "false" parsed["isFixed"] = "true" if "FIXED" in format_id else "false" parsed["isScaled"] = "true" if "SCALED" in format_id else "false" parsed[ "vertexAttribType"] = "gl::VertexAttribType::" + get_vertex_attrib_type( format_id) return format_entry_template.format(**parsed)