#if defined(DEVEL) && defined(USE_DIRECTX) #pragma once #include "shared.hpp" #include "directx/d3d_display.hpp" #include "CommonStates.h" #include "DDSTextureLoader.h" #include "Effects.h" #include "GeometricPrimitive.h" #include "Model.h" #include "PrimitiveBatch.h" #include "ScreenGrab.h" #include "SpriteBatch.h" #include "SpriteFont.h" #include "VertexTypes.h" #include "dispatch.hpp" #include "simulation/object.hpp" #include "vehicle.hpp" #include "game.hpp" using namespace ace::debug; using namespace DirectX; namespace ace { namespace vehicledamage { namespace debug { __declspec(align(16)) class penetration_display : public d3d_display, public dispatcher { public: penetration_display(); // Debug dispatch messages bool register_vehicle(const arguments &, std::string &); bool show_hit(const arguments &, std::string &); // End bool init() override; bool step(void) override; std::unique_ptr _States; std::unique_ptr _Shape; std::unique_ptr> _Batch; std::unique_ptr _Font; std::unique_ptr _BatchEffect; std::unique_ptr _FXFactory; // ACE stuff std::unique_ptr _object; vehicle_p _active_vehicle; std::vector _active_hits; void DrawHits(uint32_t lod, PrimitiveBatch& batch, GXMVECTOR color); void DrawCollisions(const std::vector> & collisions, PrimitiveBatch& batch, GXMVECTOR color); void DrawObject(uint32_t lod, PrimitiveBatch& batch, ace::simulation::object & obj, GXMVECTOR color); void DrawGrid(PrimitiveBatch& batch, FXMVECTOR xAxis, FXMVECTOR yAxis, FXMVECTOR origin, size_t xdivs, size_t ydivs, GXMVECTOR color); }; } } } #endif