<?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.5.8.0_30";
<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>draw_surface_general</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 for draw_surface_general"/>
<meta name="rh-index-keywords" content="draw_surface_general"/>
<meta name="search-keywords" content="draw_surface_general"/>
</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="draw_surface_general">
<span>draw_surface_general</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>draw_surface_general</h1>
<p>This function combines the function <a href="draw_surface_ext.htm"><tt>draw_surface_ext()</tt></a> with the function <a href="draw_surface_part.htm"><tt>draw_surface_part()</tt></a>, adding in some additional blending options so that each corner of
the final surface part can be blended with an individual colour.</p>
<p class="note"><b>NOTE: </b>Gradient blending is not available for the HTML5 target unless WebGL is enabled.</p>
<p class="note"><b></b><b>NOTE</b>: When working with surfaces there is the possibility that they can cease to exist at any time due to them being stored in texture memory. You should <b>ALWAYS</b> check that a surface exists using <span style="font-size:1px;"><a href="surface_exists.htm"><tt style="font-size: 14px">surface_exists()</tt></a></span> before referencing them directly.</p>
<p> </p>
<h4>Syntax:</h4>
<p class="code">draw_surface_general(id, left, top, w, h, x, y, xscale, yscale, rot, c1, c2, c3, c4, alpha);</p>
<table>
<tbody>
<tr>
<th>Argument</th>
<th>Description</th>
</tr>
<tr>
<td>id</td>
<td>The unique ID value of the surface to draw.</td>
</tr>
<tr>
<td>left</td>
<td>The left position in the surface of the part to be drawn.</td>
</tr>
<tr>
<td>top</td>
<td>The top position in the surface of the part to be drawn.</td>
</tr>
<tr>
<td>w</td>
<td>The width of the part to be draw, from left.</td>
</tr>
<tr>
<td>h</td>
<td>The height of the part to be draw, from top.</td>
</tr>
<tr>
<td>x</td>
<td>The x position of where to draw the surface.</td>
</tr>
<tr>
<td>y</td>
<td>The y position of where to draw the surface.</td>
</tr>
<tr>
<td>xscale</td>
<td>The horizontal scaling to draw the surface with.</td>
</tr>
<tr>
<td>yscale</td>
<td>The vertical scaling to draw the surface with.</td>
</tr>
<tr>
<td>rot</td>
<td>The rotation or angle to draw the surface with.</td>
</tr>
<tr>
<td>c1</td>
<td>The colour of the top left corner of the surface.</td>
</tr>
<tr>
<td>c2</td>
<td>The colour of the top right corner of the surface.</td>
</tr>
<tr>
<td>c3</td>
<td>The colour of the bottom right corner of the surface.</td>
</tr>
<tr>
<td>c4</td>
<td>The colour of the bottom left corner of the surface.</td>
</tr>
<tr>
<td>alpha</td>
<td>The alpha transparency to draw the surface with..</td>
</tr>
</tbody>
</table>
<p> </p>
<h4>Returns:</h4>
<p class="code">N/A</p>
<p> </p>
<h4>Example:</h4>
<p class="code">draw_surface_general(surf, 8, 8, 32, 32, x, y, 2, 0.5, 180, c_white, c_white, c_black, c_black, 1);</p>
<p>This will draw a 32x32 pixel area from 8x8 pixels into the surface. It will be stretched to double its usual width but half its usual height. It will be opaque, and upside down. The top area of the surface will be blended white and hence normal, but
the bottom area will be black, meaning the surface will go from normal to silhouette downwards in a smooth gradient.</p>
<p> </p>
<p> </p>
<p> </p>
<div class="footer">
<div class="buttons">
<div class="clear">
<div style="float:left">Back: <a href="Surfaces.htm">Surfaces</a></div>
<div style="float:right">Next: <a href="application_surface.htm">application_surface</a></div>
</div>
</div>
<h5>© Copyright YoYo Games Ltd. 2020 All Rights Reserved</h5>
</div>
</body></html>