diff options
| author | bunnei <bunneidev@gmail.com> | 2016-03-17 10:29:40 -0400 | 
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2016-03-17 10:29:40 -0400 | 
| commit | 20ba5b14b40f716d297cfed6c83d24719391bbfa (patch) | |
| tree | 4819132ccb06922c4e2a7dc431736a1c4dd292a0 /src/video_core | |
| parent | de7ecee51693c2319cb34689ffd5bdd398163299 (diff) | |
| parent | 63e956cc7a57fe05aa2e422762349bee253715fb (diff) | |
Merge pull request #1539 from lioncash/const
video_core: Don't cast away const
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/command_processor.cpp | 11 | ||||
| -rw-r--r-- | src/video_core/debug_utils/debug_utils.cpp | 24 | ||||
| -rw-r--r-- | src/video_core/shader/shader_interpreter.cpp | 2 | 
3 files changed, 19 insertions, 18 deletions
| diff --git a/src/video_core/command_processor.cpp b/src/video_core/command_processor.cpp index 54721561e..33414258a 100644 --- a/src/video_core/command_processor.cpp +++ b/src/video_core/command_processor.cpp @@ -234,7 +234,7 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {              const auto& index_info = regs.index_array;              const u8* index_address_8 = Memory::GetPhysicalPointer(base_address + index_info.offset); -            const u16* index_address_16 = (u16*)index_address_8; +            const u16* index_address_16 = reinterpret_cast<const u16*>(index_address_8);              bool index_u16 = index_info.format != 0;  #if PICA_DUMP_GEOMETRY @@ -345,10 +345,11 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {                                          : (vertex_attribute_formats[i] == Regs::VertexAttributeFormat::SHORT) ? 2 : 1);                                  } -                                const float srcval = (vertex_attribute_formats[i] == Regs::VertexAttributeFormat::BYTE) ? *(s8*)srcdata : -                                    (vertex_attribute_formats[i] == Regs::VertexAttributeFormat::UBYTE) ? *(u8*)srcdata : -                                    (vertex_attribute_formats[i] == Regs::VertexAttributeFormat::SHORT) ? *(s16*)srcdata : -                                    *(float*)srcdata; +                                const float srcval = +                                    (vertex_attribute_formats[i] == Regs::VertexAttributeFormat::BYTE)  ? *reinterpret_cast<const s8*>(srcdata) : +                                    (vertex_attribute_formats[i] == Regs::VertexAttributeFormat::UBYTE) ? *reinterpret_cast<const u8*>(srcdata) : +                                    (vertex_attribute_formats[i] == Regs::VertexAttributeFormat::SHORT) ? *reinterpret_cast<const s16*>(srcdata) : +                                    *reinterpret_cast<const float*>(srcdata);                                  input.attr[i][comp] = float24::FromFloat32(srcval);                                  LOG_TRACE(HW_GPU, "Loaded component %x of attribute %x for vertex %x (index %x) from 0x%08x + 0x%08x + 0x%04x: %f", diff --git a/src/video_core/debug_utils/debug_utils.cpp b/src/video_core/debug_utils/debug_utils.cpp index 271e81ca1..bac6d69c7 100644 --- a/src/video_core/debug_utils/debug_utils.cpp +++ b/src/video_core/debug_utils/debug_utils.cpp @@ -117,13 +117,13 @@ void GeometryDumper::Dump() {  void DumpShader(const std::string& filename, const Regs::ShaderConfig& config, const Shader::ShaderSetup& setup, const Regs::VSOutputAttributes* output_attributes)  {      struct StuffToWrite { -        u8* pointer; +        const u8* pointer;          u32 size;      };      std::vector<StuffToWrite> writing_queue;      u32 write_offset = 0; -    auto QueueForWriting = [&writing_queue,&write_offset](u8* pointer, u32 size) { +    auto QueueForWriting = [&writing_queue,&write_offset](const u8* pointer, u32 size) {          writing_queue.push_back({pointer, size});          u32 old_write_offset = write_offset;          write_offset += size; @@ -228,27 +228,27 @@ void DumpShader(const std::string& filename, const Regs::ShaderConfig& config, c      DVLPHeader dvlp{ DVLPHeader::MAGIC_WORD };      DVLEHeader dvle{ DVLEHeader::MAGIC_WORD }; -    QueueForWriting((u8*)&dvlb, sizeof(dvlb)); -    u32 dvlp_offset = QueueForWriting((u8*)&dvlp, sizeof(dvlp)); -    dvlb.dvle_offset = QueueForWriting((u8*)&dvle, sizeof(dvle)); +    QueueForWriting(reinterpret_cast<const u8*>(&dvlb), sizeof(dvlb)); +    u32 dvlp_offset = QueueForWriting(reinterpret_cast<const u8*>(&dvlp), sizeof(dvlp)); +    dvlb.dvle_offset = QueueForWriting(reinterpret_cast<const u8*>(&dvle), sizeof(dvle));      // TODO: Reduce the amount of binary code written to relevant portions      dvlp.binary_offset = write_offset - dvlp_offset;      dvlp.binary_size_words = setup.program_code.size(); -    QueueForWriting((u8*)setup.program_code.data(), setup.program_code.size() * sizeof(u32)); +    QueueForWriting(reinterpret_cast<const u8*>(setup.program_code.data()), setup.program_code.size() * sizeof(u32));      dvlp.swizzle_info_offset = write_offset - dvlp_offset;      dvlp.swizzle_info_num_entries = setup.swizzle_data.size();      u32 dummy = 0;      for (unsigned int i = 0; i < setup.swizzle_data.size(); ++i) { -        QueueForWriting((u8*)&setup.swizzle_data[i], sizeof(setup.swizzle_data[i])); -        QueueForWriting((u8*)&dummy, sizeof(dummy)); +        QueueForWriting(reinterpret_cast<const u8*>(&setup.swizzle_data[i]), sizeof(setup.swizzle_data[i])); +        QueueForWriting(reinterpret_cast<const u8*>(&dummy), sizeof(dummy));      }      dvle.main_offset_words = config.main_offset;      dvle.output_register_table_offset = write_offset - dvlb.dvle_offset;      dvle.output_register_table_size = static_cast<u32>(output_info_table.size()); -    QueueForWriting((u8*)output_info_table.data(), static_cast<u32>(output_info_table.size() * sizeof(OutputRegisterInfo))); +    QueueForWriting(reinterpret_cast<const u8*>(output_info_table.data()), static_cast<u32>(output_info_table.size() * sizeof(OutputRegisterInfo)));      // TODO: Create a label table for "main" @@ -292,14 +292,14 @@ void DumpShader(const std::string& filename, const Regs::ShaderConfig& config, c      dvle.constant_table_offset = write_offset - dvlb.dvle_offset;      dvle.constant_table_size = constant_table.size();      for (const auto& constant : constant_table) { -        QueueForWriting((uint8_t*)&constant, sizeof(constant)); +        QueueForWriting(reinterpret_cast<const u8*>(&constant), sizeof(constant));      }      // Write data to file      std::ofstream file(filename, std::ios_base::out | std::ios_base::binary); -    for (auto& chunk : writing_queue) { -        file.write((char*)chunk.pointer, chunk.size); +    for (const auto& chunk : writing_queue) { +        file.write(reinterpret_cast<const char*>(chunk.pointer), chunk.size);      }  } diff --git a/src/video_core/shader/shader_interpreter.cpp b/src/video_core/shader/shader_interpreter.cpp index 295a2466b..02e1a1cb1 100644 --- a/src/video_core/shader/shader_interpreter.cpp +++ b/src/video_core/shader/shader_interpreter.cpp @@ -409,7 +409,7 @@ void RunInterpreter(UnitState<Debug>& state) {          {              if ((instr.opcode.Value().EffectiveOpCode() == OpCode::Id::MAD) ||                  (instr.opcode.Value().EffectiveOpCode() == OpCode::Id::MADI)) { -                const SwizzlePattern& swizzle = *(SwizzlePattern*)&swizzle_data[instr.mad.operand_desc_id]; +                const SwizzlePattern& swizzle = *reinterpret_cast<const SwizzlePattern*>(&swizzle_data[instr.mad.operand_desc_id]);                  bool is_inverted = (instr.opcode.Value().EffectiveOpCode() == OpCode::Id::MADI); | 
