def writeInitFunctionPointers(api, filename, functionTypes, cond=None):

    def makeInitFunctionPointers():
        for function in api.functions:
            if ((function.getType() in functionTypes) and ((cond == None) or cond(function))):
                interfaceName = getInterfaceName(function)
                if function.isAlias:
                    if ((function.getType() == Function.TYPE_INSTANCE) and (function.arguments[0].getType() == 'VkPhysicalDevice')):
                        (yield ('m_vk.%s\t= (%s)\tGET_PROC_ADDR("%s");' % (getInterfaceName(function), getFunctionTypeName(function), function.name)))
                else:
                    (yield ('m_vk.%s\t= (%s)\tGET_PROC_ADDR("%s");' % (getInterfaceName(function), getFunctionTypeName(function), function.name)))
                    if (function.alias != None):
                        (yield ('if (!m_vk.%s)' % getInterfaceName(function)))
                        (yield ('    m_vk.%s\t= (%s)\tGET_PROC_ADDR("%s");' % (getInterfaceName(function), getFunctionTypeName(function), function.alias.name)))
    lines = [line.replace('    ', '\t') for line in indentLines(makeInitFunctionPointers())]
    writeInlFile(filename, INL_HEADER, lines)
def writeInitFunctionPointers(api, filename, functionTypes, cond=None):

    def makeInitFunctionPointers():
        for function in api.functions:
            if ((function.getType() in functionTypes) and ((cond == None) or cond(function))):
                interfaceName = getInterfaceName(function)
                if function.isAlias:
                    if ((function.getType() == Function.TYPE_INSTANCE) and (function.arguments[0].getType() == 'VkPhysicalDevice')):
                        (yield ('m_vk.%s\t= (%s)\tGET_PROC_ADDR("%s");' % (getInterfaceName(function), getFunctionTypeName(function), function.name)))
                else:
                    (yield ('m_vk.%s\t= (%s)\tGET_PROC_ADDR("%s");' % (getInterfaceName(function), getFunctionTypeName(function), function.name)))
                    if (function.alias != None):
                        (yield ('if (!m_vk.%s)' % getInterfaceName(function)))
                        (yield ('    m_vk.%s\t= (%s)\tGET_PROC_ADDR("%s");' % (getInterfaceName(function), getFunctionTypeName(function), function.alias.name)))
    lines = [line.replace('    ', '\t') for line in indentLines(makeInitFunctionPointers())]
    writeInlFile(filename, INL_HEADER, lines)