<?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_11";
<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_peek</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_peek"/>
<meta name="rh-index-keywords" content="buffer_peek,buffer_u8,buffer_s8,buffer_u16,buffer_s16,buffer_u32,buffer_s32,buffer_u64,buffer_f16,buffer_f32,buffer_f64,buffer_bool,buffer_string,buffer_text"/>
<meta name="search-keywords" content="buffer_peek"/>
</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_peek">
<span>buffer_peek</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_peek</h1>
<p>With the <a href="buffer_read.htm"><tt>buffer_read()</tt></a> function, you can read data from the given buffer at the current "seek" position, with each piece of data being read advancing this position by the bytes being read or written.
However, it may be necessary for you to read a given piece of data without wanting to change the current seek position, and that's when you would use this function. You simply supply the function with a buffer id, and then an offset position (from
the buffer start) within that buffer to read from, as well as the data type that you are wanting to read.</p>
<p class="note"><b>NOTE</b>: Using the incorrect data type for the data being read will result in erroneous values!</p>
<p>If the function succeeds then a value (Real, string, int, etc...) will be returned depending on the data type, while a failure will return simply 0.</p>
<p> </p>
<h4>Syntax:</h4>
<p class="code">buffer_peek(buffer, offset, type);</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>offset</td>
<td>The offset position (in bytes) within the buffer to read the given data from.</td>
</tr>
<tr>
<td>type</td>
<td>The type of data that is to be read from the buffer (see the list of constants <a href="buffer_read.htm">here</a>).</td>
</tr>
</tbody>
</table>
<p> </p>
<h4>Returns:</h4>
<p class="code">Real/String or 0 if it fails.</p>
<p> </p>
<h4>Example:</h4>
<p class="code">var red = buffer_peek(buff, 1, buffer_u8);<br/> var green = buffer_peek(buff, 2, buffer_u8);<br/> var blue = buffer_peek(buff, 3, buffer_u8);<br/> image_blend = make_colour_rgb(red, green, blue);</p>
<p>The above code will get three values from three different positions within the buffer indexed in the variable "buff" and then use those values to set the image blend of the instance.</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_poke.htm">buffer_poke</a></div>
</div>
</div>
<h5>© Copyright YoYo Games Ltd. 2020 All Rights Reserved</h5>
</div>
</body></html>