From: Good Guy Date: Sat, 26 Sep 2020 21:43:47 +0000 (-0600) Subject: Andrea and Phyllis cleanup changes to include Andrea new motion.png and camera_tool.png X-Git-Tag: 2021-05~51 X-Git-Url: http://git.cinelerra-gg.org/git/?a=commitdiff_plain;ds=sidebyside;h=3bd92f987ebdde89af6049e0098b94bfe542fed7;p=goodguy%2Fcin-manual-latex.git Andrea and Phyllis cleanup changes to include Andrea new motion.png and camera_tool.png --- diff --git a/images/camera_tool.png b/images/camera_tool.png index ff1b017..d081275 100644 Binary files a/images/camera_tool.png and b/images/camera_tool.png differ diff --git a/parts/Developer.tex b/parts/Developer.tex index 271706d..d0f9d43 100644 --- a/parts/Developer.tex +++ b/parts/Developer.tex @@ -643,21 +643,21 @@ The summary line above in Bold represents the User time, System time, Real time So why use a Profiler? Because it is the ``ls'' for executable functions!! -\section{How to create your own theme} +\section{How to Create a new Theme} \label{sec:how_create_theme} -A Theme is a base class object that is created and customized as \textit{ThemeName}. +A \textit{Theme} is a base class object that is created and customized as \textit{ThemeName}. It is constructed during program initialization in a theme plugin \texttt{PluginTClient}, -defined in a \texttt{plugins/theme\_name} source directory. +defined in \texttt{plugins/theme\_name} source directory. \texttt{theme\_name.C} and \texttt{theme\_name.h} are derived \textit{Theme} class object constructors. -A Theme is constructed during initialization in \texttt{init\_theme} (\texttt{mwindow.C}). The theme plugin is accessed using the \textit{name} from preferences, and that theme plugin is loaded, and it contains the code to construct that theme. A Theme object has functions and data that \CGG{} uses to do a variety of customizations, such as \texttt{default\_window\_positions}, and it can modify GUI defaults, like \\ -\texttt{default\_text\_color}, when it is initialized. +A \textit{Theme} is constructed during initialization in \texttt{init\_theme} (\texttt{mwindow.C}). The theme plugin is accessed using the \textit{name} from preferences and then the theme plugin is loaded which contains the code to construct the theme. A \textit{Theme} object has functions and data that \CGG{} uses to do a variety of customizations, such as \texttt{default\_window\_positions}, and it can modify GUI defaults like \\ +\texttt{default\_text\_color} when it is initialized. -The theme plugin contains a \textit{new\_theme} function, that allocates and constructs a -\textit{ThemeName} object, with a base classes of \textit{BC\_Theme} (gui setup), \textit{Theme} (\CGG{} defaults), and \textit{ThemeName}, with definitions and overrides that create the custom theme. To create a new theme, a new plugin is needed: +The theme plugin contains a \textit{new\_theme} function that allocates and constructs a +\textit{ThemeName} object with base classes of \textit{BC\_Theme} (gui setup), \textit{Theme} (\CGG{} defaults), and \textit{ThemeName}, with definitions and overrides that create the custom theme. To create a new theme, a new plugin is needed: \begin{lstlisting}[numbers=none] #include "header files.h" @@ -697,19 +697,19 @@ The theme plugin contains a \textit{new\_theme} function, that allocates and con When a theme is constructed by \texttt{NameMain::new\_theme()}, it sets a pointer to a block of data created in the plugin build that contains all of the png data -files in the \texttt{plugins/theme\_name/data} directory. These images may define or override the appearance of gui images, such as \textit{ok.png} (the ok button). There are usually a large number of images that need to be defined. The theme plugin adds them to the theme image data in the \texttt{theme $\rightarrow$ initialize()} function. The best list of theme image setup is probably in SUV (\texttt{plugins/theme\_suv/suv.}) +files in the \texttt{plugins/theme\_name/data} directory. These images may define or override the appearance of gui images, such as \textit{ok.png} (the ok button). There are usually a large number of images that need to be defined. The theme plugin adds them to the theme image data in the \texttt{theme $\rightarrow$ initialize()} function. The best list of theme image setup is probably in SUV (\texttt{plugins/theme\_suv/suv}). The easy way to create a new theme is to copy an existing theme and change -its name to \textit{ThemeName}, and be sure to \texttt{change plugin\_title()} to the new name, then tweak the definitions until you are happy with the results. The file -names and Makefile also need to be updated to the new theme \textit{name}. The source -can by manually rebuilt by invoking make in the \texttt{plugins/theme\_name} +its name to \textit{ThemeName}, change \texttt{plugin\_title()} to the new name, and then tweak the definitions until you are happy with the results. The file +names and Makefile also need to be updated to the new theme name. The source +can by manually rebuilt by invoking \textit{make} in the \texttt{plugins/theme\_name} directory. -Once it is built into the plugin library, it will be discovered by the plugin probe, -and it will become an available theme in the \textit{Preferences}. +Once the new theme is built into the plugin library, it will automatically be discovered by the plugin probe +and it will become an available theme in \textit{Preferences}. If you are ready to add it to the main build, then \textit{theme\_name} should be -included in the DIRS targets of the \texttt{plugins/Makefile}, and the \texttt{plugin\_defs} needs \textit{theme\_name} in the themes list. +included in the DIRS targets of the \texttt{plugins/Makefile}, and \texttt{plugin\_defs} needs \textit{theme\_name} in the themes list. Themes usually require considerable time to create from scratch. For example, the SUV theme has over 800 lines in the initialize function, and has over diff --git a/parts/Plugins.tex b/parts/Plugins.tex index 8016c6a..6411638 100644 --- a/parts/Plugins.tex +++ b/parts/Plugins.tex @@ -1705,17 +1705,13 @@ color to determine the color you want the rest of the video to be. When there is a large light or color variation within a range of a few frames, you spend a lot of time correcting each frame when it would be better to just get an average value to use. If you want, then you can make a LUT for -that set of frames instead of each frame. A practical case may be the shooting of a room illuminated by a lamp and then with the light off. We can choose only the range of illuminated frames and then we will have the whole shot illuminated. Or we can choose only the dark frames and so we will have all the dark shot. +that set of frames instead of each frame. It works by selecting the area on the timeline for which you would like to see the Histogram averaged and then click on the \textit{Frames} button in the Histogram plugin. The parameters are: -\textit{Linear to Log} slider: frequency in Linear range to Log range; default is -50\%, but if you want it to be the same as the Videoscope or Histogram Bezier, set the slider -all the way to Log. The variation is by 10\% steps. Linear generally represents what -the eye sees in the real world. Log is an exponential look where the small numbers are -represented more - that is, the leading digit. +\textit{Linear to Log} slider: frequency in Linear range to Log range; default is 50\%, but if you want it to be the same as the Videoscope or Histogram Bezier, set the slider all the way to Log. The variation is by 10\% steps. Linear generally represents what the eye sees in the real world. Log is an exponential look where the small numbers are represented more - that is, the leading digit. \textit{Frames} button: if a Selection is set on the timeline, the number of frames will be calculated and shown in the box next to it. \textit{Frame Count box}: type in the number of frames you want to be looked at @@ -1965,7 +1961,7 @@ Motion tracker works by using one region of the frame as the region to track (Ma To save time the motion result can be saved in a file for later reuse, recalled from a previous calculation, or discarded. The motion tracker has a notion of $2$ tracks, the \textit{master} layer and the \textit{target} layer. The \textit{master} layer is where the comparison between $2$ frames takes place. The \textit{target} layer is where motion is applied either to track or compensate for the motion in the \textit{master} layer (figure~\ref{fig:motion}). \begin{figure}[ht] - \centering + \centering \includegraphics[width=0.9\linewidth]{motion.png} \caption{Motion plugin GUI} \label{fig:motion} @@ -2294,7 +2290,7 @@ C - has only object2 visible \subsection{Motion 2 Point}% \label{sub:motion_2_point} -Motion stabilization using 2 pass tracking. For theory and explanations refer to the \hyperref[sub:motion]{Motion} plugin. +Motion plugin using 2 \textit{Match box} for tracking. For theory and explanations refer to the \hyperref[sub:motion]{Motion} plugin. \subsection{Motion Blur}% \label{sub:motion_blur} diff --git a/parts/Windows.tex b/parts/Windows.tex index 57c30ca..64da599 100644 --- a/parts/Windows.tex +++ b/parts/Windows.tex @@ -922,6 +922,8 @@ To put the reduced video in the center subsection that the projector shows would Instead, we leave out $x$ and out $y$ at 0 and use the projector's tool window. By selecting left justify and top justify, the projector displays the reduced image from the top left corner of the \textit{temporary} in the center of the output. +\paragraph{Note:} To change the limits of the slider X, Y and Z, which by default are $-100 / +100$, we must intervene on the zoom bar at the bottom of the Program window. Select Zoom for Z; or X and Y and enter the desired values. Now the Camera/Projector tool will assume the new limits. + Other buttons cover the 5 modes of curves interpolation: smooth, linear, tangent, free, bump. \begin{description}