<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<script type="text/javascript" language="JavaScript">
function reDo() {
if (innerWidth != origWidth || innerHeight != origHeight)
location.reload();
}
if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
origWidth = innerWidth;
origHeight = innerHeight;
onresize = reDo;
}
onerror = null;
</script>
<style type="text/css">
< !-- div.WebHelpPopupMenu {
position: absolute;
left: 0px;
top: 0px;
z-index: 4;
visibility: hidden;
}
p.WebHelpNavBar {
text-align: right;
}
-->
</style>
<script type="text/javascript">
gRootRelPath = "../../..";
gCommonRootRelPath = "../../..";
gTopicId = "9.2.17.0_31";
<script type="text/javascript" src="../../../template/scripts/rh.min.js"></script>
<script type="text/javascript" src="../../../template/scripts/common.min.js"></script>
<script type="text/javascript" src="../../../template/scripts/topic.min.js"></script>
<script type="text/javascript" src="../../../template/scripts/topicwidgets.min.js"></script>
<script type="text/javascript" src="../../../whxdata/projectsettings.js"></script>
<link rel="stylesheet" type="text/css" href="../../../template/styles/topic.min.css"/>
<link rel="stylesheet" type="text/css" href="../../../template/Charcoal_Grey/topicheader.css"/>
<meta name="topic-status" content="Draft"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>buffer_get_surface</title>
<meta name="generator" content="Adobe RoboHelp 2019"/>
<link rel="stylesheet" href="../../../assets/css/default.css" type="text/css"/>
<meta name="rh-authors" content="Mark Alexander"/>
<meta name="topic-comment" content="Reference page for buffer_get_surface"/>
<meta name="rh-index-keywords" content="buffer_get_surface,buffer_surface_copy"/>
<meta name="search-keywords" content="buffer_get_surface,buffer_surface_copy"/>
</head>
<body>
<div class="topic-header rh-hide" id="rh-topic-header" onclick="rh._.goToFullLayout()">
<div class="logo">
</div>
<div class="nav">
<div class="title" title="buffer_get_surface">
<span>buffer_get_surface</span>
</div>
<div class="gotohome" title="Click here to see this page in full context">
<span>Click here to see this page in full context</span>
</div>
</div>
</div>
<div class="topic-header-shadow rh-hide" id="rh-topic-header-shadow"></div>
<h1>buffer_get_surface</h1>
<p>With this function you can write the information from a surface to a given buffer. The buffer must have been created previously and should be a 1byte aligned <i>grow</i> buffer of an approximate size (in bytes) of the surface you are going to write.
You can choose the copy "mode" for the data being stored which is set by the constants listed below, as well as the offset and modulo values. Both offset and modulo are byte values, with the offset defining the start position within the
buffer and modulo being the number of bytes left at the end of every line (for storing additional data). Note that the function writes each pixel of the surface to the buffer using a <b>BGRA</b> formatting on the Windows target, but on other targets
it may be different depending on the OS or even the device.</p>
<p> </p>
<table>
<tbody>
<tr>
<th>Constant</th>
<th>Description</th>
</tr>
<tr>
<td>buffer_surface_copy</td>
<td>Copies all data from the surface.</td>
</tr>
</tbody>
</table>
<p> </p>
<p> </p>
<h4>Syntax:</h4>
<p class="code">buffer_get_surface(buffer, surface, mode, offset, modulo);</p>
<table>
<tbody>
<tr>
<th>Argument</th>
<th>Description</th>
</tr>
<tr>
<td>buffer</td>
<td>The index of the buffer to use.</td>
</tr>
<tr>
<td>surface</td>
<td>The index of the surface to use.</td>
</tr>
<tr>
<td>mode</td>
<td>The data to get from the surface (see the list of constants above).</td>
</tr>
<tr>
<td>offset</td>
<td>The data offset value.</td>
</tr>
<tr>
<td>modulo</td>
<td>The offset from the end of the line to the start of the next</td>
</tr>
</tbody>
</table>
<p> </p>
<h4>Returns:</h4>
<p class="code">N/A</p>
<p> </p>
<h4>Example:</h4>
<p class="code">buffer_get_surface(buff, application_surface, buffer_surface_copy, 0, 0);</p>
<p>The above code will copy the data stored in the application surface to the buffer indexed in the variable "buff" with no offset or modulo values.</p>
<p> </p>
<p> </p>
<p> </p>
<div class="footer">
<div class="buttons">
<div class="clear">
<div style="float:left">Back: <a href="Buffers.htm">Buffers</a></div>
<div style="float:right">Next: <a href="buffer_set_surface.htm">buffer_set_surface</a></div>
</div>
</div>
<h5>© Copyright YoYo Games Ltd. 2020 All Rights Reserved</h5>
</div>
</body></html>