Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.0 / cinelerra / vdevicex11.h
diff --git a/cinelerra-5.0/cinelerra/vdevicex11.h b/cinelerra-5.0/cinelerra/vdevicex11.h
deleted file mode 100644 (file)
index 6bfb8ac..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-
-/*
- * CINELERRA
- * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- * 
- */
-
-#ifndef VDEVICEX11_H
-#define VDEVICEX11_H
-
-#include "canvas.inc"
-#include "edl.inc"
-#include "guicast.h"
-#include "maskauto.inc"
-#include "maskautos.inc"
-#include "pluginclient.inc"
-#include "thread.h"
-#include "vdevicebase.h"
-
-// output_frame is the same one written to device
-#define BITMAP_PRIMARY 0
-// output_frame is a temporary converted to the device format
-#define BITMAP_TEMP    1
-
-class VDeviceX11 : public VDeviceBase
-{
-public:
-       VDeviceX11(VideoDevice *device, Canvas *output);
-       ~VDeviceX11();
-
-       int open_input();
-       int close_all();
-       int read_buffer(VFrame *frame);
-       int reset_parameters();
-// User always gets the colormodel requested
-       void new_output_buffer(VFrame **output, int colormodel);
-
-       int open_output();
-       int start_playback();
-       int stop_playback();
-       int output_visible();
-// After loading the bitmap with a picture, write it
-       int write_buffer(VFrame *result, EDL *edl);
-// Get best colormodel for recording
-       int get_best_colormodel(Asset *asset);
-
-
-//=========================== compositing stages ===============================
-// For compositing with OpenGL, must clear the frame buffer
-// before overlaying tracks.
-       void clear_output();
-
-// Called by VModule::import_frame
-       void do_camera(VFrame *output,
-               VFrame *input,
-               float in_x1, 
-               float in_y1, 
-               float in_x2, 
-               float in_y2, 
-               float out_x1, 
-               float out_y1, 
-               float out_x2, 
-               float out_y2);
-
-// Called by VModule::import_frame for cases with no media.
-       void clear_input(VFrame *frame);
-
-       void do_fade(VFrame *output_temp, float fade);
-
-// Hardware version of MaskEngine
-       void do_mask(VFrame *output_temp, 
-               int64_t start_position_project,
-               MaskAutos *keyframe_set, 
-               MaskAuto *keyframe,
-               MaskAuto *default_auto);
-       void convert_cmodel(VFrame *output, int dst_cmodel);
-
-// The idea is to composite directly in the frame buffer if OpenGL.
-// OpenGL can do all the blending using the frame buffer.
-// Unfortunately if the output is lower resolution than the frame buffer, the
-// rendered output is the resolution of the frame buffer, not the output.
-// Also, the frame buffer has to be copied back to textures for nonstandard
-// blending equations and blended at the framebuffer resolution.
-// If the frame buffer is higher resolution than the
-// output frame, like a 2560x1600 display, it could cause unnecessary slowness.
-// Finally, there's the problem of updating the refresh frame.
-// It requires recompositing the previous frame in software every time playback was
-// stops, a complicated operation.
-       void overlay(VFrame *output_frame,
-               VFrame *input, 
-               float in_x1, 
-               float in_y1, 
-               float in_x2, 
-               float in_y2, 
-               float out_x1, 
-               float out_y1, 
-               float out_x2, 
-               float out_y2, 
-               float alpha,        // 0 - 1
-               int mode,
-               EDL *edl,
-               int is_nested);
-
-// For plugins, lock the canvas, enable opengl, and run a function in the
-// plugin client in the synchronous thread.  The user must override the
-// pluginclient function.
-       void run_plugin(PluginClient *client);
-
-// For multichannel plugins, copy from the temporary pbuffer to 
-// the plugin output texture.
-// Set the output OpenGL state to TEXTURE.
-       void copy_frame(VFrame *dst, VFrame *src);
-
-private:
-// Closest colormodel the hardware can do for playback.
-// Only used by VDeviceX11::new_output_buffer.  The value from File::get_best_colormodel
-// is passed to this to create the VFrame to which the output is rendered.
-// For OpenGL, it creates the array of row pointers used to upload the video
-// frame to the texture, the texture, and the PBuffer.
-       int get_best_colormodel(int colormodel);
-
-// Bitmap to be written to device
-       BC_Bitmap *bitmap;        
-// Wrapper for bitmap or intermediate buffer for user to write to
-       VFrame *output_frame;     
-// Type of output_frame
-       int bitmap_type;           
-// dimensions of buffers written to window
-       int bitmap_w, bitmap_h;   
-       ArrayList<int> render_strategies;
-// Canvas for output
-       Canvas *output;
-// Parameters the output texture conforms to, for OpenGL
-// window_id is probably not going to be used
-       int window_id;
-       int texture_w;
-       int texture_h;
-       int color_model;
-       int color_model_selected;
-// Transfer coordinates from the output frame to the canvas 
-// for last frame rendered.
-// These stick the last frame to the display.
-// Must be floats to support OpenGL
-       float output_x1, output_y1, output_x2, output_y2;
-       float canvas_x1, canvas_y1, canvas_x2, canvas_y2;
-// Screen capture
-       BC_Capture *capture_bitmap;
-// Set when OpenGL rendering has cleared the frame buffer before write_buffer
-       int is_cleared;
-};
-
-#endif