diff --git a/aegisub/src/dialog_properties.cpp b/aegisub/src/dialog_properties.cpp index bc31c1809..8602bbd88 100644 --- a/aegisub/src/dialog_properties.cpp +++ b/aegisub/src/dialog_properties.cpp @@ -52,6 +52,7 @@ #include "utils.h" #include "help_button.h" #include "libresrc/libresrc.h" +#include "video_context.h" diff --git a/aegisub/src/dialog_timing_processor.cpp b/aegisub/src/dialog_timing_processor.cpp index 67c65a8fd..805066f3a 100644 --- a/aegisub/src/dialog_timing_processor.cpp +++ b/aegisub/src/dialog_timing_processor.cpp @@ -50,6 +50,7 @@ #include "vfr.h" #include "utils.h" #include "help_button.h" +#include "video_context.h" #include "libresrc/libresrc.h" diff --git a/aegisub/src/frame_main.cpp b/aegisub/src/frame_main.cpp index 624a2e38f..e43a493e1 100644 --- a/aegisub/src/frame_main.cpp +++ b/aegisub/src/frame_main.cpp @@ -53,6 +53,7 @@ #include "avisynth_wrap.h" #endif #include "video_display.h" +#include "video_context.h" #include "video_provider_manager.h" #include "video_slider.h" #include "ass_file.h" diff --git a/aegisub/src/frame_main_events.cpp b/aegisub/src/frame_main_events.cpp index e96f84a86..bce6cb63f 100644 --- a/aegisub/src/frame_main_events.cpp +++ b/aegisub/src/frame_main_events.cpp @@ -49,6 +49,7 @@ #include "subs_grid.h" #include "frame_main.h" #include "video_display.h" +#include "video_context.h" #include "video_slider.h" #include "video_box.h" #include "ass_file.h" diff --git a/aegisub/src/subs_edit_box.cpp b/aegisub/src/subs_edit_box.cpp index 7747b2822..f47b089f7 100644 --- a/aegisub/src/subs_edit_box.cpp +++ b/aegisub/src/subs_edit_box.cpp @@ -54,6 +54,7 @@ #include "audio_display.h" #include "hilimod_textctrl.h" #include "video_display.h" +#include "video_context.h" #include "validators.h" #include "dialog_colorpicker.h" #include "main.h" diff --git a/aegisub/src/subs_grid.cpp b/aegisub/src/subs_grid.cpp index 7e89b8697..50e115224 100644 --- a/aegisub/src/subs_grid.cpp +++ b/aegisub/src/subs_grid.cpp @@ -48,6 +48,7 @@ #include "ass_dialogue.h" #include "ass_style.h" #include "video_display.h" +#include "video_context.h" #include "vfr.h" #include "subs_edit_box.h" #include "options.h" diff --git a/aegisub/src/video_box.cpp b/aegisub/src/video_box.cpp index fa2da39a1..ae794d165 100644 --- a/aegisub/src/video_box.cpp +++ b/aegisub/src/video_box.cpp @@ -47,6 +47,7 @@ #include #include "video_box.h" #include "video_display.h" +#include "video_context.h" #include "video_slider.h" #include "frame_main.h" #include "toggle_bitmap.h" @@ -103,18 +104,6 @@ VideoBox::VideoBox(wxWindow *parent, bool isDetached) VideoSubsPos = new wxTextCtrl(videoPage,-1,_T(""),wxDefaultPosition,wxSize(110,20),wxTE_READONLY); VideoSubsPos->SetToolTip(_("Time of this frame relative to start and end of current subs.")); - // Display - videoDisplay = new VideoDisplay(videoPage,-1,wxDefaultPosition,wxDefaultSize,wxSUNKEN_BORDER); - videoDisplay->ControlSlider = videoSlider; - videoDisplay->PositionDisplay = VideoPosition; - videoDisplay->SubsPosition = VideoSubsPos; - videoDisplay->box = this; - VideoContext::Get()->AddDisplay(videoDisplay); - videoDisplay->Reset(); - - // Set display - videoSlider->Display = videoDisplay; - // Typesetting buttons visualToolBar = new wxToolBar(videoPage,-1,wxDefaultPosition,wxDefaultSize,wxTB_VERTICAL|wxTB_FLAT|wxTB_NODIVIDER); visualToolBar->AddTool(Video_Mode_Standard,_("Standard"),GETIMAGE(visual_standard_24),_("Standard mode, double click sets position."),wxITEM_RADIO); @@ -133,6 +122,17 @@ VideoBox::VideoBox(wxWindow *parent, bool isDetached) visualToolBar->SetBackgroundStyle(wxBG_STYLE_COLOUR); visualToolBar->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)); + // Display + videoDisplay = new VideoDisplay(videoPage,-1,this,wxDefaultPosition,wxDefaultSize,wxSUNKEN_BORDER); + videoDisplay->ControlSlider = videoSlider; + videoDisplay->PositionDisplay = VideoPosition; + videoDisplay->SubsPosition = VideoSubsPos; + VideoContext::Get()->AddDisplay(videoDisplay); + videoDisplay->Reset(); + + // Set display + videoSlider->Display = videoDisplay; + // Top sizer // Detached and attached video needs different flags, see bugs #742 and #853 int highSizerFlags = isDetached ? wxEXPAND : 0; @@ -168,7 +168,6 @@ VideoBox::VideoBox(wxWindow *parent, bool isDetached) SetSizer(VideoSizer); } - /////////////// // Event table BEGIN_EVENT_TABLE(VideoBox, wxPanel) diff --git a/aegisub/src/video_box.h b/aegisub/src/video_box.h index 76f9581cf..8d24a7a2f 100644 --- a/aegisub/src/video_box.h +++ b/aegisub/src/video_box.h @@ -81,8 +81,6 @@ public: /// DOCME wxToolBar *visualSubToolBar; - //wxSizer *visualSubToolBar; - /// DOCME ToggleBitmap *AutoScroll; diff --git a/aegisub/src/video_display.cpp b/aegisub/src/video_display.cpp index 70022ec71..db750f1f5 100644 --- a/aegisub/src/video_display.cpp +++ b/aegisub/src/video_display.cpp @@ -34,8 +34,6 @@ /// @ingroup video main_ui /// - -//////////// // Includes #include "config.h" @@ -47,28 +45,15 @@ #include #include #endif -#include -#include #include -#include -#include #include "utils.h" #include "video_display.h" #include "video_provider_manager.h" #include "vfr.h" -#include "ass_file.h" -#include "ass_time.h" #include "ass_dialogue.h" -#include "ass_style.h" -#include "subs_grid.h" -#include "vfw_wrap.h" -#include "mkv_wrap.h" #include "options.h" -#include "subs_edit_box.h" -#include "audio_display.h" -#include "main.h" -#include "video_slider.h" #include "video_box.h" +#include "video_context.h" #include "gl_wrap.h" #include "visual_tool.h" #include "visual_tool_cross.h" @@ -80,29 +65,20 @@ #include "visual_tool_drag.h" #include "hotkeys.h" - -/////// -// IDs +// Menu item IDs enum { - - /// DOCME + /// Copy mouse coordinates to clipboard VIDEO_MENU_COPY_COORDS = 1230, - - /// DOCME + /// Copy frame to clipboard with subtitles VIDEO_MENU_COPY_TO_CLIPBOARD, - - /// DOCME + /// Copy frame to clipboard without subtitles VIDEO_MENU_COPY_TO_CLIPBOARD_RAW, - - /// DOCME + /// Save frame with subtitles VIDEO_MENU_SAVE_SNAPSHOT, - - /// DOCME + /// Save frame without subtitles VIDEO_MENU_SAVE_SNAPSHOT_RAW }; - -/////////////// // Event table BEGIN_EVENT_TABLE(VideoDisplay, wxGLCanvas) EVT_MOUSE_EVENTS(VideoDisplay::OnMouseEvent) @@ -120,23 +96,20 @@ END_EVENT_TABLE() -/// DOCME +/// Attribute list for gl canvases; set the canvases to doublebuffered rgba with an 8 bit stencil buffer int attribList[] = { WX_GL_RGBA , WX_GL_DOUBLEBUFFER, WX_GL_STENCIL_SIZE, 8, 0 }; -/// @brief Constructor -/// @param parent -/// @param id -/// @param pos -/// @param size -/// @param style -/// @param name -/// -VideoDisplay::VideoDisplay(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name) -: wxGLCanvas (parent, id, attribList, pos, size, style, name) +/// @brief Constructor +/// @param parent Pointer to a parent window. +/// @param id Window identifier. If -1, will automatically create an identifier. +/// @param pos Window position. wxDefaultPosition is (-1, -1) which indicates that wxWidgets should generate a default position for the window. +/// @param size Window size. wxDefaultSize is (-1, -1) which indicates that wxWidgets should generate a default size for the window. If no suitable size can be found, the window will be sized to 20x20 pixels so that the window is visible but obviously not correctly sized. +/// @param style Window style. +/// @param name Window name. +VideoDisplay::VideoDisplay(wxWindow* parent, wxWindowID id, VideoBox *box, const wxPoint& pos, const wxSize& size, long style, const wxString& name) +: wxGLCanvas (parent, id, attribList, pos, size, style, name), box(box) { - // Set options - box = NULL; locked = false; ControlSlider = NULL; PositionDisplay = NULL; @@ -151,43 +124,24 @@ VideoDisplay::VideoDisplay(wxWindow* parent, wxWindowID id, const wxPoint& pos, SetVisualMode(0); } - - /// @brief Destructor -/// VideoDisplay::~VideoDisplay () { delete visual; visual = NULL; VideoContext::Get()->RemoveDisplay(this); } - - -/// @brief Show cursor -/// @param show -/// +/// @brief Set the cursor to either default or blank +/// @param Whether or not the cursor should be visible void VideoDisplay::ShowCursor(bool show) { - // Show if (show) SetCursor(wxNullCursor); - - // Hide else { - // Bleeeh! Hate this 'solution': - #if __WXGTK__ - static char cursor_image[] = {0}; - wxCursor cursor(cursor_image, 8, 1, -1, -1, cursor_image); - #else wxCursor cursor(wxCURSOR_BLANK); - #endif // __WXGTK__ SetCursor(cursor); } } - - -/// @brief Render -/// @return -/// +/// @brief Render the currently visible frame void VideoDisplay::Render() // Yes it's legal C++ to replace the body of a function with one huge try..catch statement try { @@ -342,8 +296,7 @@ catch (...) { -/// @brief TV effects (overscan and so on) -/// +/// @brief Draw the appropriate overscan masks for the current aspect ratio void VideoDisplay::DrawTVEffects() { // Get coordinates int sw,sh; @@ -351,9 +304,8 @@ void VideoDisplay::DrawTVEffects() { context->GetScriptSize(sw,sh); bool drawOverscan = Options.AsBool(_T("Show Overscan Mask")); - // Draw overscan mask if (drawOverscan) { - // Get aspect ration + // Get aspect ratio double ar = context->GetAspectRatioValue(); // Based on BBC's guidelines: http://www.bbc.co.uk/guidelines/dq/pdf/tv/tv_standards_london.pdf @@ -371,14 +323,11 @@ void VideoDisplay::DrawTVEffects() { } } - - -/// @brief Draw overscan mask -/// @param sizeH -/// @param sizeV -/// @param colour -/// @param alpha -/// +/// @brief Draw an overscan mask +/// @param sizeH The amount of horizontal overscan on one side +/// @param sizeV The amount of vertical overscan on one side +/// @param colour The color of the mask +/// @param alpha The alpha of the mask void VideoDisplay::DrawOverscanMask(int sizeH,int sizeV,wxColour colour,double alpha) { // Parameters int sw,sh; @@ -410,15 +359,8 @@ void VideoDisplay::DrawOverscanMask(int sizeH,int sizeV,wxColour colour,double a glDisable(GL_BLEND); } - - -/// @brief Update size -/// @return -/// +/// @brief Update the size of the display void VideoDisplay::UpdateSize() { - // Don't do anything if it's a free sizing display - //if (freeSize) return; - // Loaded? VideoContext *con = VideoContext::Get(); wxASSERT(con); @@ -458,11 +400,7 @@ void VideoDisplay::UpdateSize() { Refresh(false); } - - -/// @brief Resets -/// @return -/// +/// @brief Reset the size of the display to the video size void VideoDisplay::Reset() { // Only calculate sizes if it's visible if (!IsShownOnScreen()) return; @@ -478,35 +416,22 @@ void VideoDisplay::Reset() { SetSizeHints(_w,_h,_w,_h); } - - /// @brief Paint event /// @param event -/// void VideoDisplay::OnPaint(wxPaintEvent& event) { wxPaintDC dc(this); Render(); } - - -/// @brief Size Event -/// @param event -/// +/// @brief Handle resize events +/// @param event void VideoDisplay::OnSizeEvent(wxSizeEvent &event) { - //Refresh(false); - if (freeSize) { - UpdateSize(); - } + if (freeSize) UpdateSize(); event.Skip(); } - - -/// @brief Mouse stuff +/// @brief Handle mouse events /// @param event -/// @return -/// void VideoDisplay::OnMouseEvent(wxMouseEvent& event) { // Locked? if (locked) return; @@ -548,11 +473,8 @@ void VideoDisplay::OnMouseEvent(wxMouseEvent& event) { if (visual) visual->OnMouseEvent(event); } - - -/// @brief Key event -/// @param event -/// +/// @brief Handle keypress events for switching visual typesetting modes +/// @param event void VideoDisplay::OnKey(wxKeyEvent &event) { int key = event.GetKeyCode(); #ifdef __APPLE__ @@ -571,22 +493,15 @@ void VideoDisplay::OnKey(wxKeyEvent &event) { event.Skip(); } - - - -/// @brief Sets zoom level -/// @param value -/// +/// @brief Set the zoom level +/// @param value The new zoom level void VideoDisplay::SetZoom(double value) { zoomValue = value; UpdateSize(); } - - -/// @brief Sets zoom position -/// @param value -/// +/// @brief Set the position of the zoom dropdown and switch to that zoom +/// @param value The new zoom position void VideoDisplay::SetZoomPos(int value) { if (value < 0) value = 0; if (value > 15) value = 15; @@ -594,10 +509,7 @@ void VideoDisplay::SetZoomPos(int value) { if (zoomBox->GetSelection() != value) zoomBox->SetSelection(value); } - - -/// @brief Updates position display -/// +/// @brief Update the absolute frame time display void VideoDisplay::UpdatePositionDisplay() { // Update position display control if (!PositionDisplay) { @@ -638,12 +550,8 @@ void VideoDisplay::UpdatePositionDisplay() { UpdateSubsRelativeTime(); } - - -/// @brief Updates box with subs position relative to frame -/// +/// @brief Update the relative-to-subs time display void VideoDisplay::UpdateSubsRelativeTime() { - // Set variables wxString startSign; wxString endSign; int startOff,endOff; @@ -673,9 +581,8 @@ void VideoDisplay::UpdateSubsRelativeTime() { -/// @brief Copy to clipboard -/// @param event -/// +/// @brief Copy the currently display frame to the clipboard, with subtitles +/// @param event Unused void VideoDisplay::OnCopyToClipboard(wxCommandEvent &event) { if (wxTheClipboard->Open()) { wxTheClipboard->SetData(new wxBitmapDataObject(wxBitmap(VideoContext::Get()->GetFrame(-1).GetImage(),24))); @@ -685,9 +592,8 @@ void VideoDisplay::OnCopyToClipboard(wxCommandEvent &event) { -/// @brief Copy to clipboard (raw) -/// @param event -/// +/// @brief Copy the currently display frame to the clipboard, without subtitles +/// @param event Unused void VideoDisplay::OnCopyToClipboardRaw(wxCommandEvent &event) { if (wxTheClipboard->Open()) { wxTheClipboard->SetData(new wxBitmapDataObject(wxBitmap(VideoContext::Get()->GetFrame(-1,true).GetImage(),24))); @@ -697,27 +603,24 @@ void VideoDisplay::OnCopyToClipboardRaw(wxCommandEvent &event) { -/// @brief Save snapshot -/// @param event -/// +/// @brief Save the currently display frame to a file, with subtitles +/// @param event Unused void VideoDisplay::OnSaveSnapshot(wxCommandEvent &event) { VideoContext::Get()->SaveSnapshot(false); } -/// @brief Save snapshot (raw) -/// @param event -/// +/// @brief Save the currently display frame to a file, without subtitles +/// @param event Unused void VideoDisplay::OnSaveSnapshotRaw(wxCommandEvent &event) { VideoContext::Get()->SaveSnapshot(true); } -/// @brief Copy coordinates -/// @param event -/// +/// @brief Copy coordinates of the mouse to the clipboard +/// @param event Unused void VideoDisplay::OnCopyCoords(wxCommandEvent &event) { if (wxTheClipboard->Open()) { int sw,sh; @@ -731,10 +634,9 @@ void VideoDisplay::OnCopyCoords(wxCommandEvent &event) { -/// @brief Convert mouse coordinates -/// @param x -/// @param y -/// +/// @brief Convert mouse coordinates relative to the display to coordinates relative to the video +/// @param x X coordinate +/// @param y Y coordinate void VideoDisplay::ConvertMouseCoords(int &x,int &y) { int w,h; GetClientSize(&w,&h); @@ -748,20 +650,20 @@ void VideoDisplay::ConvertMouseCoords(int &x,int &y) { -/// @brief Set mode -/// @param mode -/// +/// @brief Set the current visual typesetting mode +/// @param mode The new mode void VideoDisplay::SetVisualMode(int mode) { // Set visual if (visualMode != mode) { - // Get toolbar wxToolBar *toolBar = NULL; if (box) { toolBar = box->visualSubToolBar; toolBar->ClearTools(); toolBar->Realize(); toolBar->Show(false); - if (!box->visualToolBar->GetToolState(mode + Video_Mode_Standard)) box->visualToolBar->ToggleTool(mode + Video_Mode_Standard,true); + if (!box->visualToolBar->GetToolState(mode + Video_Mode_Standard)) { + box->visualToolBar->ToggleTool(mode + Video_Mode_Standard,true); + } } // Replace mode @@ -778,12 +680,8 @@ void VideoDisplay::SetVisualMode(int mode) { default: visual = NULL; } - // Update size to reflect toolbar changes + // Update size as the new typesetting tool may have changed the subtoolbar size UpdateSize(); } - - // Render Render(); } - - diff --git a/aegisub/src/video_display.h b/aegisub/src/video_display.h index b0ef25e14..d3ea221cd 100644 --- a/aegisub/src/video_display.h +++ b/aegisub/src/video_display.h @@ -34,73 +34,54 @@ /// @ingroup video main_ui /// - #pragma once - -/////////// -// Headers #include -#ifdef __WINDOWS__ -#include -#endif -#include #include #include -#include "video_context.h" - -////////////// // Prototypes -class SubtitlesGrid; class VideoSlider; -class AudioProvider; -class AudioDisplay; -class AssDialogue; -class VideoProvider; class VisualTool; class VideoBox; - - /// DOCME /// @class VideoDisplay /// @brief DOCME /// /// DOCME class VideoDisplay: public wxGLCanvas { - friend class AudioProvider; - friend class VisualTool; - private: - - /// DOCME + /// The current visual typesetting mode int visualMode; - - /// DOCME + /// The unscaled size of the displayed video wxSize origSize; - /// DOCME + /// The width of the display + int w; + /// The height of the display + int h; - /// DOCME - int w,h; + /// The x-coordinate of the top left of the area containing video. + /// Always zero unless the display is detatched and is wider than the video. + int dx1; + /// The x-coordinate of the bottom right of the area containing video. + /// Always equal to the width of the video unless the display is detatched and is wider than the video. + int dx2; + /// The y-coordinate of the top left of the area containing video. + /// Always zero unless the display is detatched and is taller than the video. + int dy1; + /// The y-coordinate of the bottom of the area containing video. + /// Always equal to the height of the video unless the display is detatched and is taller than the video. + int dy2; - /// DOCME + /// The x position of the mouse + int mouse_x; + /// The y position of the mouse + int mouse_y; - /// DOCME - - /// DOCME - - /// DOCME - int dx1,dx2,dy1,dy2; - - /// DOCME - - /// DOCME - int mouse_x,mouse_y; - - /// DOCME + /// Lock to disable mouse updates during resize operations bool locked; void DrawTVEffects(); @@ -110,9 +91,8 @@ private: void OnKey(wxKeyEvent &event); void OnMouseEvent(wxMouseEvent& event); - /// @brief DOCME - /// @param event - /// + /// @brief NOP event handler + /// @param event Unused void OnEraseBackground(wxEraseEvent &event) {} void OnSizeEvent(wxSizeEvent &event); @@ -122,35 +102,32 @@ private: void OnCopyToClipboardRaw(wxCommandEvent &event); void OnSaveSnapshotRaw(wxCommandEvent &event); -public: - - /// DOCME - VisualTool *visual; - - /// DOCME - VideoBox *box; - - - /// DOCME + /// The current zoom level, where 1.0 = 100% double zoomValue; - /// DOCME + /// The VideoBox this display is contained in + VideoBox *box; + +public: + /// The current visual typesetting tool + VisualTool *visual; + + /// Whether the display can be freely resized by the user bool freeSize; - - /// DOCME + /// The video position slider; not used by VideoDisplay VideoSlider *ControlSlider; - /// DOCME + /// The dropdown box for selecting zoom levels wxComboBox *zoomBox; - /// DOCME + /// The display for the absolute time of the video position wxTextCtrl *PositionDisplay; - /// DOCME + /// The display for the the video position relative to the current subtitle line wxTextCtrl *SubsPosition; - VideoDisplay(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxPanelNameStr); + VideoDisplay(wxWindow* parent, wxWindowID id, VideoBox *box, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxPanelNameStr); ~VideoDisplay(); void Reset(); @@ -167,7 +144,3 @@ public: DECLARE_EVENT_TABLE() }; - - - - diff --git a/aegisub/src/video_slider.cpp b/aegisub/src/video_slider.cpp index c810cb6a3..ca0ec8d57 100644 --- a/aegisub/src/video_slider.cpp +++ b/aegisub/src/video_slider.cpp @@ -43,6 +43,7 @@ #include #include "video_slider.h" #include "video_display.h" +#include "video_context.h" #include "subs_grid.h" #include "ass_dialogue.h" #include "vfr.h" diff --git a/aegisub/src/visual_feature.cpp b/aegisub/src/visual_feature.cpp index 07b490e2e..c83200364 100644 --- a/aegisub/src/visual_feature.cpp +++ b/aegisub/src/visual_feature.cpp @@ -41,6 +41,7 @@ #include "visual_feature.h" #include "gl_wrap.h" +#include "ass_dialogue.h" diff --git a/aegisub/src/visual_feature.h b/aegisub/src/visual_feature.h index 3192a16ee..86632c90e 100644 --- a/aegisub/src/visual_feature.h +++ b/aegisub/src/visual_feature.h @@ -37,15 +37,10 @@ #pragma once - -/////////// -// Headers -#include "ass_dialogue.h" - - ////////////// // Prototypes class OpenGLWrapper; +class AssDialogue; diff --git a/aegisub/src/visual_tool.cpp b/aegisub/src/visual_tool.cpp index 7836d1280..aee6d76f1 100644 --- a/aegisub/src/visual_tool.cpp +++ b/aegisub/src/visual_tool.cpp @@ -48,6 +48,7 @@ #include #include "visual_tool.h" #include "video_display.h" +#include "video_context.h" #include "video_provider_manager.h" #include "vfr.h" #include "ass_file.h" diff --git a/aegisub/src/visual_tool.h b/aegisub/src/visual_tool.h index d49dbe1e2..31420bf2b 100644 --- a/aegisub/src/visual_tool.h +++ b/aegisub/src/visual_tool.h @@ -42,7 +42,6 @@ // Headers #include #include -#include "video_display.h" #include "gl_wrap.h" #include "visual_feature.h" diff --git a/aegisub/src/visual_tool_clip.cpp b/aegisub/src/visual_tool_clip.cpp index b21399803..67718e97d 100644 --- a/aegisub/src/visual_tool_clip.cpp +++ b/aegisub/src/visual_tool_clip.cpp @@ -45,6 +45,7 @@ #include "ass_file.h" #include "ass_dialogue.h" #include "utils.h" +#include "video_display.h" diff --git a/aegisub/src/visual_tool_cross.cpp b/aegisub/src/visual_tool_cross.cpp index 3d2f6b921..ac3c1bc6b 100644 --- a/aegisub/src/visual_tool_cross.cpp +++ b/aegisub/src/visual_tool_cross.cpp @@ -44,6 +44,8 @@ #include "subs_grid.h" #include "subs_edit_box.h" #include "ass_file.h" +#include "video_context.h" +#include "video_display.h" diff --git a/aegisub/src/visual_tool_drag.cpp b/aegisub/src/visual_tool_drag.cpp index 4ae8d0745..e6cee5571 100644 --- a/aegisub/src/visual_tool_drag.cpp +++ b/aegisub/src/visual_tool_drag.cpp @@ -47,6 +47,8 @@ #include "utils.h" #include "vfr.h" #include "libresrc/libresrc.h" +#include "video_context.h" +#include "video_display.h" diff --git a/aegisub/src/visual_tool_rotatexy.cpp b/aegisub/src/visual_tool_rotatexy.cpp index 6fb53e085..b87ec0596 100644 --- a/aegisub/src/visual_tool_rotatexy.cpp +++ b/aegisub/src/visual_tool_rotatexy.cpp @@ -45,6 +45,7 @@ #include "ass_file.h" #include "ass_dialogue.h" #include "utils.h" +#include "video_display.h" diff --git a/aegisub/src/visual_tool_rotatez.cpp b/aegisub/src/visual_tool_rotatez.cpp index dbe9ec6c6..f29380ebb 100644 --- a/aegisub/src/visual_tool_rotatez.cpp +++ b/aegisub/src/visual_tool_rotatez.cpp @@ -45,6 +45,7 @@ #include "ass_file.h" #include "ass_dialogue.h" #include "utils.h" +#include "video_display.h" diff --git a/aegisub/src/visual_tool_scale.cpp b/aegisub/src/visual_tool_scale.cpp index 6b389187e..78da39a08 100644 --- a/aegisub/src/visual_tool_scale.cpp +++ b/aegisub/src/visual_tool_scale.cpp @@ -45,6 +45,7 @@ #include "ass_file.h" #include "ass_dialogue.h" #include "utils.h" +#include "video_display.h" diff --git a/aegisub/src/visual_tool_vector_clip.cpp b/aegisub/src/visual_tool_vector_clip.cpp index a6ebe49e5..c232e5160 100644 --- a/aegisub/src/visual_tool_vector_clip.cpp +++ b/aegisub/src/visual_tool_vector_clip.cpp @@ -42,6 +42,7 @@ #include "visual_tool_vector_clip.h" #include "ass_dialogue.h" #include "libresrc/libresrc.h" +#include "video_display.h"