2017-10-16 17:50:09 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "dxbc_common.h"
|
2017-10-21 17:58:58 +02:00
|
|
|
#include "dxbc_decoder.h"
|
2017-10-16 17:50:09 +02:00
|
|
|
#include "dxbc_reader.h"
|
|
|
|
|
|
|
|
namespace dxvk {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Shader code chunk
|
|
|
|
*
|
|
|
|
* Stores the DXBC shader code itself, as well
|
|
|
|
* as some meta info about the shader, i.e. what
|
|
|
|
* type of shader this is.
|
|
|
|
*/
|
|
|
|
class DxbcShex : public RcObject {
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
DxbcShex(DxbcReader reader);
|
|
|
|
~DxbcShex();
|
|
|
|
|
|
|
|
DxbcProgramVersion version() const {
|
|
|
|
return m_version;
|
|
|
|
}
|
|
|
|
|
2017-12-18 00:28:54 +01:00
|
|
|
DxbcCodeSlice slice() const {
|
|
|
|
return DxbcCodeSlice(m_code.data(),
|
|
|
|
m_code.data() + m_code.size());
|
|
|
|
}
|
|
|
|
|
2017-10-16 17:50:09 +02:00
|
|
|
private:
|
|
|
|
|
|
|
|
DxbcProgramVersion m_version;
|
|
|
|
std::vector<uint32_t> m_code;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|