Esempio n. 1
0
def convert(vert_data, frag_data, outdir, profile, name='out'):
    # state.name = name
    vert_data = translate_shader_data(vert_data, 'vertex', 'gles')
    frag_data = translate_shader_data(frag_data, 'fragment', 'gles')

    vert = get_shader(vert_data, 'vert', profile)
    frag = get_shader(frag_data, 'frag', profile, vert.vs_out)

    new_vert_path = os.path.join(outdir, '%s.vs' % name)
    new_frag_path = os.path.join(outdir, '%s.ps' % name)

    with open(new_vert_path, 'wb') as fp:
        fp.write(vert.data)

    with open(new_frag_path, 'wb') as fp:
        fp.write(frag.data)

    if profile == 'hlsl':
        call([
            FXC_DIR, '/nologo', '/E', 'main', '/O3', '/T', 'vs_2_a',
            new_vert_path, '/Fo', new_vert_path + 'b'
        ])
        call([
            FXC_DIR, '/nologo', '/E', 'main', '/O3', '/T', 'ps_2_a',
            new_frag_path, '/Fo', new_frag_path + 'b'
        ])

    return new_vert_path, new_frag_path
Esempio n. 2
0
 def get_shader(self, name, vert, frag):
     vert = translate_shader_data(vert, 'vertex', 'gles')
     frag = translate_shader_data(frag, 'fragment', 'gles')
     writer = ByteReader()
     writer.writeInt(len(vert))
     writer.write(vert)
     writer.writeInt(len(frag))
     writer.write(frag)
     return str(writer)
Esempio n. 3
0
def convert(vert_data, frag_data, outdir, profile, name='out'):
    # state.name = name
    vert_data = translate_shader_data(vert_data, 'vertex', 'gles')
    frag_data = translate_shader_data(frag_data, 'fragment', 'gles')

    vert = get_shader(vert_data, 'vert', profile)
    frag = get_shader(frag_data, 'frag', profile, vert.vs_out)

    new_vert_path = os.path.join(outdir, '%s.vs' % name)
    new_frag_path = os.path.join(outdir, '%s.ps' % name)

    with open(new_vert_path, 'wb') as fp:
        fp.write(vert.data)

    with open(new_frag_path, 'wb') as fp:
        fp.write(frag.data)

    if profile == 'hlsl':
        call([FXC_DIR, '/nologo', '/E', 'main', '/O3', '/T', 'vs_2_a',
              new_vert_path, '/Fo', new_vert_path + 'b'])
        call([FXC_DIR, '/nologo', '/E', 'main', '/O3', '/T', 'ps_2_a',
              new_frag_path, '/Fo', new_frag_path + 'b'])

    return new_vert_path, new_frag_path