~ubuntu-branches/ubuntu/precise/mesa/precise-updates

« back to all changes in this revision

Viewing changes to src/gallium/state_trackers/d3d1x/d3d1xshader/tools/fxdis.cpp

  • Committer: Package Import Robot
  • Author(s): Robert Hooker
  • Date: 2012-02-02 12:05:48 UTC
  • mfrom: (1.7.1) (3.3.27 sid)
  • Revision ID: package-import@ubuntu.com-20120202120548-nvkma85jq0h4coix
Tags: 8.0~rc2-0ubuntu4
Drop drisearchdir handling, it is no longer needed with multiarch
and dri-alternates being removed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**************************************************************************
 
2
 *
 
3
 * Copyright 2010 Luca Barbieri
 
4
 *
 
5
 * Permission is hereby granted, free of charge, to any person obtaining
 
6
 * a copy of this software and associated documentation files (the
 
7
 * "Software"), to deal in the Software without restriction, including
 
8
 * without limitation the rights to use, copy, modify, merge, publish,
 
9
 * distribute, sublicense, and/or sell copies of the Software, and to
 
10
 * permit persons to whom the Software is furnished to do so, subject to
 
11
 * the following conditions:
 
12
 *
 
13
 * The above copyright notice and this permission notice (including the
 
14
 * next paragraph) shall be included in all copies or substantial
 
15
 * portions of the Software.
 
16
 *
 
17
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
18
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
19
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 
20
 * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
 
21
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 
22
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 
23
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
24
 *
 
25
 **************************************************************************/
 
26
 
 
27
#include "dxbc.h"
 
28
#include "sm4.h"
 
29
#include <iostream>
 
30
#include <fstream>
 
31
 
 
32
void usage()
 
33
{
 
34
        std::cerr << "Gallium Direct3D10/11 Shader Disassembler\n";
 
35
        std::cerr << "This program is free software, released under a MIT-like license\n";
 
36
        std::cerr << "Not affiliated with or endorsed by Microsoft in any way\n";
 
37
        std::cerr << "Latest version available from http://cgit.freedesktop.org/mesa/mesa/\n";
 
38
        std::cerr << "\n";
 
39
        std::cerr << "Usage: fxdis FILE\n";
 
40
        std::cerr << std::endl;
 
41
}
 
42
 
 
43
int main(int argc, char** argv)
 
44
{
 
45
        if(argc < 2)
 
46
        {
 
47
                usage();
 
48
                return 1;
 
49
        }
 
50
 
 
51
        std::vector<char> data;
 
52
        std::ifstream in(argv[1]);
 
53
        char c;
 
54
        in >> std::noskipws;
 
55
        while(in >> c)
 
56
                data.push_back(c);
 
57
        in.close();
 
58
 
 
59
        dxbc_container* dxbc = dxbc_parse(&data[0], data.size());
 
60
        if(dxbc)
 
61
        {
 
62
                std::cout << *dxbc;
 
63
                dxbc_chunk_header* sm4_chunk = dxbc_find_shader_bytecode(&data[0], data.size());
 
64
                if(sm4_chunk)
 
65
                {
 
66
                        sm4_program* sm4 = sm4_parse(sm4_chunk + 1, bswap_le32(sm4_chunk->size));
 
67
                        if(sm4)
 
68
                        {
 
69
                                std::cout << *sm4;
 
70
                                delete sm4;
 
71
                        }
 
72
                }
 
73
                delete dxbc;
 
74
        }
 
75
}