Files
oak-editor/docs/html/struct_compose_sequence_params.html
T
2019-02-19 03:57:47 -08:00

485 lines
35 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Olive: ComposeSequenceParams Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Olive
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="struct_compose_sequence_params-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ComposeSequenceParams Struct Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>The <a class="el" href="struct_compose_sequence_params.html" title="The ComposeSequenceParams struct.">ComposeSequenceParams</a> struct.
<a href="struct_compose_sequence_params.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="renderfunctions_8h_source.html">renderfunctions.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a14cd6939729b5280466954797512df90"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_viewer.html">Viewer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a14cd6939729b5280466954797512df90">viewer</a></td></tr>
<tr class="memdesc:a14cd6939729b5280466954797512df90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the <a class="el" href="class_viewer.html">Viewer</a> class that's calling <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> <a href="#a14cd6939729b5280466954797512df90">More...</a><br /></td></tr>
<tr class="separator:a14cd6939729b5280466954797512df90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a489d2c9b71e24f5c451cd97e6b99d154"><td class="memItemLeft" align="right" valign="top">QOpenGLContext *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a489d2c9b71e24f5c451cd97e6b99d154">ctx</a></td></tr>
<tr class="memdesc:a489d2c9b71e24f5c451cd97e6b99d154"><td class="mdescLeft">&#160;</td><td class="mdescRight">The OpenGL context to use while rendering. <a href="#a489d2c9b71e24f5c451cd97e6b99d154">More...</a><br /></td></tr>
<tr class="separator:a489d2c9b71e24f5c451cd97e6b99d154"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae553daee9d1555337a78f28a1500708e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="clip_8h.html#a2a0d48184294d399b0adc41f6e1de6c7">SequencePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#ae553daee9d1555337a78f28a1500708e">seq</a></td></tr>
<tr class="memdesc:ae553daee9d1555337a78f28a1500708e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The sequence to compose. <a href="#ae553daee9d1555337a78f28a1500708e">More...</a><br /></td></tr>
<tr class="separator:ae553daee9d1555337a78f28a1500708e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9812ba14b9e30e5b82e5545afa6874ba"><td class="memItemLeft" align="right" valign="top">QVector&lt; <a class="el" href="cacher_8h.html#a06b2300f462978e17d9b586991a0af3f">ClipPtr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a9812ba14b9e30e5b82e5545afa6874ba">nests</a></td></tr>
<tr class="memdesc:a9812ba14b9e30e5b82e5545afa6874ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array to store the nested sequence hierarchy. <a href="#a9812ba14b9e30e5b82e5545afa6874ba">More...</a><br /></td></tr>
<tr class="separator:a9812ba14b9e30e5b82e5545afa6874ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2002668089d1fe63177933242f284d5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#ac2002668089d1fe63177933242f284d5">video</a></td></tr>
<tr class="memdesc:ac2002668089d1fe63177933242f284d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set compose mode to video or audio. <a href="#ac2002668089d1fe63177933242f284d5">More...</a><br /></td></tr>
<tr class="separator:ac2002668089d1fe63177933242f284d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69f91937c67d10c8327a5b908911557e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="effect_8h.html#a76f90640a8579a0d9d52d40f7147f969">EffectPtr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a69f91937c67d10c8327a5b908911557e">gizmos</a></td></tr>
<tr class="memdesc:a69f91937c67d10c8327a5b908911557e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to the <a class="el" href="class_effect.html">Effect</a> whose gizmos were chosen to be drawn on screen. <a href="#a69f91937c67d10c8327a5b908911557e">More...</a><br /></td></tr>
<tr class="separator:a69f91937c67d10c8327a5b908911557e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66ee6093b239f9a46d83a729a0f702ba"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a66ee6093b239f9a46d83a729a0f702ba">texture_failed</a></td></tr>
<tr class="memdesc:a66ee6093b239f9a46d83a729a0f702ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">A variable that <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> will set to <b>TRUE</b> if any of the clips couldn't be shown. <a href="#a66ee6093b239f9a46d83a729a0f702ba">More...</a><br /></td></tr>
<tr class="separator:a66ee6093b239f9a46d83a729a0f702ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3bc6f6e6766e44dfbd4f82b60f45689"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#ae3bc6f6e6766e44dfbd4f82b60f45689">single_threaded</a></td></tr>
<tr class="memdesc:ae3bc6f6e6766e44dfbd4f82b60f45689"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run all cachers in the same thread that <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> is in. <a href="#ae3bc6f6e6766e44dfbd4f82b60f45689">More...</a><br /></td></tr>
<tr class="separator:ae3bc6f6e6766e44dfbd4f82b60f45689"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24021c50259cb0ee3260e82ee59916ce"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a24021c50259cb0ee3260e82ee59916ce">playback_speed</a></td></tr>
<tr class="memdesc:a24021c50259cb0ee3260e82ee59916ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the current playback speed (adjusted with Shuttle Left/Right) <a href="#a24021c50259cb0ee3260e82ee59916ce">More...</a><br /></td></tr>
<tr class="separator:a24021c50259cb0ee3260e82ee59916ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4046da9e298cea9013d18b13f844f64"><td class="memItemLeft" align="right" valign="top">QOpenGLShaderProgram *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#aa4046da9e298cea9013d18b13f844f64">blend_mode_program</a></td></tr>
<tr class="memdesc:aa4046da9e298cea9013d18b13f844f64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blending mode shader. <a href="#aa4046da9e298cea9013d18b13f844f64">More...</a><br /></td></tr>
<tr class="separator:aa4046da9e298cea9013d18b13f844f64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbe27fb20a5c6a470e1424188dfea1bd"><td class="memItemLeft" align="right" valign="top">QOpenGLShaderProgram *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#acbe27fb20a5c6a470e1424188dfea1bd">premultiply_program</a></td></tr>
<tr class="memdesc:acbe27fb20a5c6a470e1424188dfea1bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Premultiply alpha shader. <a href="#acbe27fb20a5c6a470e1424188dfea1bd">More...</a><br /></td></tr>
<tr class="separator:acbe27fb20a5c6a470e1424188dfea1bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8427d61e5ec833c4587afff35a81590b"><td class="memItemLeft" align="right" valign="top">GLuint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a8427d61e5ec833c4587afff35a81590b">main_buffer</a></td></tr>
<tr class="memdesc:a8427d61e5ec833c4587afff35a81590b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The OpenGL framebuffer object that the final texture to be shown is rendered to. <a href="#a8427d61e5ec833c4587afff35a81590b">More...</a><br /></td></tr>
<tr class="separator:a8427d61e5ec833c4587afff35a81590b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afab132e9800988cbc00c774ff68a7a80"><td class="memItemLeft" align="right" valign="top">GLuint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#afab132e9800988cbc00c774ff68a7a80">main_attachment</a></td></tr>
<tr class="memdesc:afab132e9800988cbc00c774ff68a7a80"><td class="mdescLeft">&#160;</td><td class="mdescRight">The attachment to the framebuffer in main_buffer. <a href="#afab132e9800988cbc00c774ff68a7a80">More...</a><br /></td></tr>
<tr class="separator:afab132e9800988cbc00c774ff68a7a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48727d18da412d5763b4d9acbdc8ce7d"><td class="memItemLeft" align="right" valign="top">GLuint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a48727d18da412d5763b4d9acbdc8ce7d">backend_buffer1</a></td></tr>
<tr class="memdesc:a48727d18da412d5763b4d9acbdc8ce7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Backend OpenGL framebuffer 1 used for further processing before rendering to main_buffer. <a href="#a48727d18da412d5763b4d9acbdc8ce7d">More...</a><br /></td></tr>
<tr class="separator:a48727d18da412d5763b4d9acbdc8ce7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1594ae236345177e82216365c4d5208"><td class="memItemLeft" align="right" valign="top">GLuint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#ad1594ae236345177e82216365c4d5208">backend_attachment1</a></td></tr>
<tr class="memdesc:ad1594ae236345177e82216365c4d5208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Backend OpenGL framebuffer 1's texture attachment. <a href="#ad1594ae236345177e82216365c4d5208">More...</a><br /></td></tr>
<tr class="separator:ad1594ae236345177e82216365c4d5208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aa85910febfd73c2df1f1eab6386e1d"><td class="memItemLeft" align="right" valign="top">GLuint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a4aa85910febfd73c2df1f1eab6386e1d">backend_buffer2</a></td></tr>
<tr class="memdesc:a4aa85910febfd73c2df1f1eab6386e1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Backend OpenGL framebuffer 2 used for further processing before rendering to main_buffer. <a href="#a4aa85910febfd73c2df1f1eab6386e1d">More...</a><br /></td></tr>
<tr class="separator:a4aa85910febfd73c2df1f1eab6386e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a682c8f279c61f9fe89cc642e21c34089"><td class="memItemLeft" align="right" valign="top">GLuint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a682c8f279c61f9fe89cc642e21c34089">backend_attachment2</a></td></tr>
<tr class="memdesc:a682c8f279c61f9fe89cc642e21c34089"><td class="mdescLeft">&#160;</td><td class="mdescRight">Backend OpenGL framebuffer 2's texture attachment. <a href="#a682c8f279c61f9fe89cc642e21c34089">More...</a><br /></td></tr>
<tr class="separator:a682c8f279c61f9fe89cc642e21c34089"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e790eddc0fb55df981a49ac8f935bf6"><td class="memItemLeft" align="right" valign="top">QOpenGLShaderProgram *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#a5e790eddc0fb55df981a49ac8f935bf6">ocio_shader</a></td></tr>
<tr class="memdesc:a5e790eddc0fb55df981a49ac8f935bf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL shader containing OpenColorIO shader information. <a href="#a5e790eddc0fb55df981a49ac8f935bf6">More...</a><br /></td></tr>
<tr class="separator:a5e790eddc0fb55df981a49ac8f935bf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5f9b7bb2db527158e76d6fc5916a576"><td class="memItemLeft" align="right" valign="top">GLuint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_compose_sequence_params.html#ac5f9b7bb2db527158e76d6fc5916a576">ocio_lut_texture</a></td></tr>
<tr class="memdesc:ac5f9b7bb2db527158e76d6fc5916a576"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL texture containing LUT obtained form OpenColorIO. <a href="#ac5f9b7bb2db527158e76d6fc5916a576">More...</a><br /></td></tr>
<tr class="separator:ac5f9b7bb2db527158e76d6fc5916a576"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="struct_compose_sequence_params.html" title="The ComposeSequenceParams struct.">ComposeSequenceParams</a> struct. </p>
<p>Struct sent to the <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> function. </p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="ad1594ae236345177e82216365c4d5208"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1594ae236345177e82216365c4d5208">&#9670;&nbsp;</a></span>backend_attachment1</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLuint ComposeSequenceParams::backend_attachment1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Backend OpenGL framebuffer 1's texture attachment. </p>
<p>The texture that <a class="el" href="struct_compose_sequence_params.html#a48727d18da412d5763b4d9acbdc8ce7d" title="Backend OpenGL framebuffer 1 used for further processing before rendering to main_buffer.">ComposeSequenceParams::backend_buffer1</a> renders to. Bound and drawn to <a class="el" href="struct_compose_sequence_params.html#a4aa85910febfd73c2df1f1eab6386e1d" title="Backend OpenGL framebuffer 2 used for further processing before rendering to main_buffer.">ComposeSequenceParams::backend_buffer2</a> to "ping-pong" between them and various shaders. </p>
</div>
</div>
<a id="a682c8f279c61f9fe89cc642e21c34089"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a682c8f279c61f9fe89cc642e21c34089">&#9670;&nbsp;</a></span>backend_attachment2</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLuint ComposeSequenceParams::backend_attachment2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Backend OpenGL framebuffer 2's texture attachment. </p>
<p>The texture that <a class="el" href="struct_compose_sequence_params.html#a4aa85910febfd73c2df1f1eab6386e1d" title="Backend OpenGL framebuffer 2 used for further processing before rendering to main_buffer.">ComposeSequenceParams::backend_buffer2</a> renders to. Bound and drawn to <a class="el" href="struct_compose_sequence_params.html#a48727d18da412d5763b4d9acbdc8ce7d" title="Backend OpenGL framebuffer 1 used for further processing before rendering to main_buffer.">ComposeSequenceParams::backend_buffer1</a> to "ping-pong" between them and various shaders. </p>
</div>
</div>
<a id="a48727d18da412d5763b4d9acbdc8ce7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48727d18da412d5763b4d9acbdc8ce7d">&#9670;&nbsp;</a></span>backend_buffer1</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLuint ComposeSequenceParams::backend_buffer1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Backend OpenGL framebuffer 1 used for further processing before rendering to main_buffer. </p>
<p>In some situations, <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> will do some processing through shaders that requires "ping-ponging" between framebuffers. backend_buffer1 and backend_buffer2 are used for this purpose. </p>
</div>
</div>
<a id="a4aa85910febfd73c2df1f1eab6386e1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4aa85910febfd73c2df1f1eab6386e1d">&#9670;&nbsp;</a></span>backend_buffer2</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLuint ComposeSequenceParams::backend_buffer2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Backend OpenGL framebuffer 2 used for further processing before rendering to main_buffer. </p>
<p>In some situations, <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> will do some processing through shaders that requires "ping-ponging" between framebuffers. backend_buffer1 and backend_buffer2 are used for this purpose. </p>
</div>
</div>
<a id="aa4046da9e298cea9013d18b13f844f64"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4046da9e298cea9013d18b13f844f64">&#9670;&nbsp;</a></span>blend_mode_program</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">QOpenGLShaderProgram* ComposeSequenceParams::blend_mode_program</td>
</tr>
</table>
</div><div class="memdoc">
<p>Blending mode shader. </p>
<p>Used only for video rendering. Never accessed with audio rendering.</p>
<p>A program containing the current active blending mode shader that can be bound during rendering. Must be compiled and linked beforehand. See <a class="el" href="class_render_thread.html#a79f92524aef4af170706f10741c65e2f">RenderThread::blend_mode_program</a> for how this is properly set up.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="struct_compose_sequence_params.html#ac2002668089d1fe63177933242f284d5" title="Set compose mode to video or audio.">ComposeSequenceParams::video</a> </dd></dl>
</div>
</div>
<a id="a489d2c9b71e24f5c451cd97e6b99d154"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a489d2c9b71e24f5c451cd97e6b99d154">&#9670;&nbsp;</a></span>ctx</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">QOpenGLContext* ComposeSequenceParams::ctx</td>
</tr>
</table>
</div><div class="memdoc">
<p>The OpenGL context to use while rendering. </p>
<p>For video rendering, this must be a valid OpenGL context. For audio, this variable is never accessed.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="struct_compose_sequence_params.html#ac2002668089d1fe63177933242f284d5" title="Set compose mode to video or audio.">ComposeSequenceParams::video</a> </dd></dl>
</div>
</div>
<a id="a69f91937c67d10c8327a5b908911557e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69f91937c67d10c8327a5b908911557e">&#9670;&nbsp;</a></span>gizmos</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="effect_8h.html#a76f90640a8579a0d9d52d40f7147f969">EffectPtr</a>* ComposeSequenceParams::gizmos</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set to the <a class="el" href="class_effect.html">Effect</a> whose gizmos were chosen to be drawn on screen. </p>
<p>A pointer to a pointer that will be set to the <a class="el" href="class_effect.html">Effect</a> whose gizmos are being rendered and should therefore be interacted with if the user uses them. </p>
</div>
</div>
<a id="afab132e9800988cbc00c774ff68a7a80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afab132e9800988cbc00c774ff68a7a80">&#9670;&nbsp;</a></span>main_attachment</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLuint ComposeSequenceParams::main_attachment</td>
</tr>
</table>
</div><div class="memdoc">
<p>The attachment to the framebuffer in main_buffer. </p>
<p>Used only for video rendering. Never accessed with audio rendering.</p>
<p>The OpenGL texture attached to the framebuffer referenced by main_buffer. </p>
</div>
</div>
<a id="a8427d61e5ec833c4587afff35a81590b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8427d61e5ec833c4587afff35a81590b">&#9670;&nbsp;</a></span>main_buffer</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLuint ComposeSequenceParams::main_buffer</td>
</tr>
</table>
</div><div class="memdoc">
<p>The OpenGL framebuffer object that the final texture to be shown is rendered to. </p>
<p>Used only for video rendering. Never accessed with audio rendering.</p>
<p>When <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> is rendering the final image, this framebuffer will be bound. </p>
</div>
</div>
<a id="a9812ba14b9e30e5b82e5545afa6874ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9812ba14b9e30e5b82e5545afa6874ba">&#9670;&nbsp;</a></span>nests</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">QVector&lt;<a class="el" href="cacher_8h.html#a06b2300f462978e17d9b586991a0af3f">ClipPtr</a>&gt; ComposeSequenceParams::nests</td>
</tr>
</table>
</div><div class="memdoc">
<p>Array to store the nested sequence hierarchy. </p>
<p>Should be left empty. This array gets passed around <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> as it calls itself recursively to handle nested sequences. </p>
</div>
</div>
<a id="ac5f9b7bb2db527158e76d6fc5916a576"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5f9b7bb2db527158e76d6fc5916a576">&#9670;&nbsp;</a></span>ocio_lut_texture</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLuint ComposeSequenceParams::ocio_lut_texture</td>
</tr>
</table>
</div><div class="memdoc">
<p>OpenGL texture containing LUT obtained form OpenColorIO. </p>
</div>
</div>
<a id="a5e790eddc0fb55df981a49ac8f935bf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e790eddc0fb55df981a49ac8f935bf6">&#9670;&nbsp;</a></span>ocio_shader</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">QOpenGLShaderProgram* ComposeSequenceParams::ocio_shader</td>
</tr>
</table>
</div><div class="memdoc">
<p>OpenGL shader containing OpenColorIO shader information. </p>
</div>
</div>
<a id="a24021c50259cb0ee3260e82ee59916ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24021c50259cb0ee3260e82ee59916ce">&#9670;&nbsp;</a></span>playback_speed</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ComposeSequenceParams::playback_speed</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the current playback speed (adjusted with Shuttle Left/Right) </p>
<p>Only used for audio rendering to determine how many samples to skip in order to play audio at the correct speed.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="struct_compose_sequence_params.html#ac2002668089d1fe63177933242f284d5" title="Set compose mode to video or audio.">ComposeSequenceParams::video</a> </dd></dl>
</div>
</div>
<a id="acbe27fb20a5c6a470e1424188dfea1bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbe27fb20a5c6a470e1424188dfea1bd">&#9670;&nbsp;</a></span>premultiply_program</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">QOpenGLShaderProgram* ComposeSequenceParams::premultiply_program</td>
</tr>
</table>
</div><div class="memdoc">
<p>Premultiply alpha shader. </p>
<p>Used only for video rendering. Never accessed with audio rendering.</p>
<p><a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a>'s internal composition expects premultipled alpha, but it will pre-emptively multiply any footage that is not set as already premultiplied (see <a class="el" href="struct_footage.html#a6ca2a6f9f1435915d800c7c90d892b2f">Footage::alpha_is_premultiplied</a>) using this shader. Must be compiled and linked beforehand. See <a class="el" href="class_render_thread.html#ad43fce825d8d316d4aba120b5f00b47c">RenderThread::premultiply_program</a> for how this is properly set up. </p>
</div>
</div>
<a id="ae553daee9d1555337a78f28a1500708e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae553daee9d1555337a78f28a1500708e">&#9670;&nbsp;</a></span>seq</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="clip_8h.html#a2a0d48184294d399b0adc41f6e1de6c7">SequencePtr</a> ComposeSequenceParams::seq</td>
</tr>
</table>
</div><div class="memdoc">
<p>The sequence to compose. </p>
<p>In addition to clips, sequences also contain the playhead position so <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> knows which frame to render. </p>
</div>
</div>
<a id="ae3bc6f6e6766e44dfbd4f82b60f45689"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3bc6f6e6766e44dfbd4f82b60f45689">&#9670;&nbsp;</a></span>single_threaded</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ComposeSequenceParams::single_threaded</td>
</tr>
</table>
</div><div class="memdoc">
<p>Run all cachers in the same thread that <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> is in. </p>
<p>Standard behavior is that all clips cache frames in their own thread and signals are sent between <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> and the clip's cacher thread regarding which frames to display and cache without stalling the <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> thread. Setting this to <b>TRUE</b> will run all cachers in the same thread creating a technically more "perfect" connection between them that will also stall the <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> thread. Used when rendering as timing isn't as important as creating output frames as quickly as possible.</p>
<dl class="section note"><dt>Note</dt><dd>Exporting should probably be rewritten without this. While running all the cachers in one thread makes it easier to synchronize everything, export performance could probably benefit from keeping them in separate threads and syncing up with them. See <a class="el" href="struct_compose_sequence_params.html#a66ee6093b239f9a46d83a729a0f702ba" title="A variable that compose_sequence() will set to TRUE if any of the clips couldn&#39;t be shown.">ComposeSequenceParams::texture_failed</a> for a similar function that could be removed. </dd></dl>
</div>
</div>
<a id="a66ee6093b239f9a46d83a729a0f702ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66ee6093b239f9a46d83a729a0f702ba">&#9670;&nbsp;</a></span>texture_failed</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ComposeSequenceParams::texture_failed</td>
</tr>
</table>
</div><div class="memdoc">
<p>A variable that <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> will set to <b>TRUE</b> if any of the clips couldn't be shown. </p>
<p>A footage item or shader may not be ready at the time this frame is drawn. If <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> couldn't draw any of the clips in the scene, this variable is set to <b>TRUE</b> indicating that the image rendered is a "best effort", but not the actual image.</p>
<p>This variable should be checked after <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> and a repaint should be triggered if it's <b>TRUE</b>.</p>
<dl class="section note"><dt>Note</dt><dd>This variable is probably bad design and is a relic of an earlier rendering backend. There may be a better way to communicate this information.</dd></dl>
<p>Additionally, since <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> for video will now always run in a separate thread anyway, there's no real issue with stalling it to wait for footage to complete opening or whatever may be lagging behind. A possible side effect of this though is that the preview may become less responsive if it's stuck trying to render one frame. With the current system, the preview may show incomplete frames occasionally but at least it will show something. This may be preferable. See <a class="el" href="struct_compose_sequence_params.html#ae3bc6f6e6766e44dfbd4f82b60f45689" title="Run all cachers in the same thread that compose_sequence() is in.">ComposeSequenceParams::single_threaded</a> for a similar function that could be removed. </p>
</div>
</div>
<a id="ac2002668089d1fe63177933242f284d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2002668089d1fe63177933242f284d5">&#9670;&nbsp;</a></span>video</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ComposeSequenceParams::video</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set compose mode to video or audio. </p>
<p><b>TRUE</b> if this function should render video, <b>FALSE</b> if this function should render audio. </p>
</div>
</div>
<a id="a14cd6939729b5280466954797512df90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14cd6939729b5280466954797512df90">&#9670;&nbsp;</a></span>viewer</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_viewer.html">Viewer</a>* ComposeSequenceParams::viewer</td>
</tr>
</table>
</div><div class="memdoc">
<p>Reference to the <a class="el" href="class_viewer.html">Viewer</a> class that's calling <a class="el" href="renderfunctions_8cpp.html#a478845e39064301011d72a81b2a10b57" title="Compose a frame of a given sequence.">compose_sequence()</a> </p>
<p>Primarily used for calling <a class="el" href="class_viewer.html#ad6bed17848f88c86ce9f20629e82c021">Viewer::play_wake()</a> when appropriate. </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>ui/<a class="el" href="renderfunctions_8h_source.html">renderfunctions.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>