blob: 21f48baa28653aa1852ec40644e1788d14864258 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
<!-- saved from url=(0013)about:internet -->
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style xmlns="" type="text/css">
/* This style sets a margin around the entire page */
html, body {
margin: 10px;
}
p {
font: normal 16px verdana, sans-serif;
margin: 0;
padding-bottom:12px;
}
h1 {
font: bold 25px verdana, sans-serif;
margin-top: 0;
margin-bottom: 3px;
padding-top: 0;
padding-bottom: 0;
}
h2 {
font: bold 19px verdana, sans-serif;
margin-top: 28px;
margin-bottom: 3px;
padding-top: 0;
padding-bottom: 0;
}
h3 {
font: bold 19px verdana, sans-serif !important;
margin-top: 28px;
margin-bottom: 3px;
padding-top: 0;
padding-bottom: 0;
}
li {
font: normal 16px verdana, sans-serif;
margin-top: 0;
margin-bottom: 18px;
padding-top: 0;
padding-bottom: 0;
}
.pdparam {
font: italic 16px verdana, sans-serif;
}
.term {
font: italic 16px verdana, sans-serif;
font-weight: normal;
}
.type {
font: normal 16px verdana, sans-serif !important;
}
.parameter {
font-style: italic;
}
a:link, a:visited {
color: blue;
text-decoration: none;
font: normal 16px;
}
a:hover {
background-color: #FFFF99;
font: normal 16px;
}
div.funcsynopsis {
text-align: left;
background-color: #e6e6e6;
font: normal 16px verdana, sans-serif;
padding-top: 10px;
padding-bottom: 10px;
}
div.funcsynopsis table {
border-collapse: separate;
font: normal 16px verdana, sans-serif;
}
div.funcsynopsis td {
background-color: #e6e6e6;
border: 0 solid #000;
padding: 1px;
font: normal 16px verdana, sans-serif;
}
div.refsect1 {
font-family: verdana, sans-serif;
font-size: 16px;
}
code.constant {
font: normal 16px courier new, monospace !important;
}
span.errorname {
font: normal 16px verdana, sans-serif !important;
}
code.function {
font: bold 16px verdana, sans-serif !important;
}
b.fsfunc {
font: bold 16px verdana, sans-serif !important;
}
code.varname {
font: italic 16px verdana, sans-serif;
}
code.replaceable {
font: italic 16px courier new, monospace;
}
code.funcdef {
font: normal 16px verdana, sans-serif !important;
}
.citerefentry {
font: normal 16px verdana, sans-serif !important;
}
.parameter {
font-style: italic;
}
code.fsfunc {
font: normal 16px verdana, sans-serif !important;
}
/* PARAMETER: This style controls spacing between the terms in Parameter section */
dt {
margin-top: 15px;
}
/* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
div.refsect1 table {
width: 100%;
margin-top: 10px;
background-color: #FFF;
border-collapse: collapse;
border-color: #000;
border-width: 1px;
font: normal 16px verdana, sans-serif;
}
div.refsect1 th {
border-collapse: collapse;
border-color: #000;
border-width: 1px;
font: bold 16px verdana, sans-serif;
}
div.refsect1 td {
background-color: #FFF;
padding: 5px;
vertical-align: text-top;
border-collapse: collapse;
border-color: #000;
border-width: 1px;
font: normal 16px verdana, sans-serif;
}
div.refsect1 p{
font: normal 16px verdana, sans-serif;
margin-top: 8px;
margin-bottom: 8px;
padding-top: 0;
padding-bottom: 0;
}
/* EXAMPLE: These styles apply only to the Example section */
div.refsect2 {
font: normal 16px courier new, monospace !important;
}
div.refsect2 table {
margin-top: 0;
background-color: #e6e6e6;
width: 100%;
border: 0 solid #000;
padding: 2px;
font: normal 16px courier new, monospace !important;
}
div.refsect2 td {
background-color: #e6e6e6;
font: normal 16px courier new, monospace !important;
white-space:pre;
}
/* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
div.refsect3 {
font: normal 11px verdana, sans-serif;
margin-top: 50px;
margin-bottom: 20px;
padding-top: 0;
padding-bottom: 0;
}
</style>
<title>cl_image_format</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1" />
<meta name="keywords" content="cl_image_format" />
</head>
<body>
<div class="refentry">
<a id="id-1"></a>
<div class="titlepage"></div>
<div xmlns="" class="refnamediv">
<a xmlns="http://www.w3.org/1999/xhtml" id="cl_image_format"></a>
<h1>cl_image_format</h1>
<p>The image format descriptor structure is defined as: </p>
</div>
<div class="refsect2">
<a id="synopsis"></a>
<h3></h3>
<div class="informaltable">
<table class="informaltable" border="0">
<colgroup>
<col align="left" class="col1" />
</colgroup>
<tbody>
<tr>
<td align="left">typedef struct _cl_image_format {
<a class="link" href="enums.html#cl_channel_order" target="pagedisplay">cl_channel_order</a> image_channel_order;
<a class="link" href="enums.html#cl_channel_type" target="pagedisplay">cl_channel_type</a> image_channel_data_type;
} cl_image_format;</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="refsect1">
<a id="parameters"></a>
<h2>Members</h2>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">image_channel_order</span>
</dt>
<dd>
<p>
Specifies the number of channels and the channel layout i.e. the
memory layout in which channels are stored in the image.
Valid values are described in the table (Table 5.6) below.
</p>
<div class="informaltable">
<table class="informaltable" border="1">
<colgroup>
<col align="left" class="col1" />
<col align="left" class="col2" />
</colgroup>
<thead>
<tr>
<th align="left">Format</th>
<th align="left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><code class="constant">CL_R</code>, <code class="constant">CL_Rx</code>, or <code class="constant">CL_A</code></td>
<td align="left"> </td>
</tr>
<tr>
<td align="left">
<code class="constant">CL_INTENSITY</code>
</td>
<td align="left">
This format can only be used if channel data type =
<code class="constant">CL_UNORM_INT8</code>, <code class="constant">CL_UNORM_INT16</code>,
<code class="constant">CL_SNORM_INT8</code>, <code class="constant">CL_SNORM_INT16</code>,
<code class="constant">CL_HALF_FLOAT</code>, or <code class="constant">CL_FLOAT</code>.
</td>
</tr>
<tr>
<td align="left">
<code class="constant">CL_LUMINANCE</code>
</td>
<td align="left">
This format can only be used if channel data type =
<code class="constant">CL_UNORM_INT8</code>, <code class="constant">CL_UNORM_INT16</code>,
<code class="constant">CL_SNORM_INT8</code>, <code class="constant">CL_SNORM_INT16</code>,
<code class="constant">CL_HALF_FLOAT</code>, or <code class="constant">CL_FLOAT</code>.
</td>
</tr>
<tr>
<td align="left">
<code class="constant">CL_DEPTH</code>
</td>
<td align="left">
This format can only be used if channel data type =
<code class="constant">CL_UNORM_INT16</code> or <code class="constant">CL_FLOAT</code>.
</td>
</tr>
<tr>
<td align="left"><code class="constant">CL_RG</code>, <code class="constant">CL_RGx</code>, or <code class="constant">CL_RA</code></td>
<td align="left"> </td>
</tr>
<tr>
<td align="left"><code class="constant">CL_RGB</code> or <code class="constant">CL_RGBx</code></td>
<td align="left">
These formats can only be used if channel data type =
<code class="constant">CL_UNORM_SHORT_565</code>, <code class="constant">CL_UNORM_SHORT_555</code>
or <code class="constant">CL_UNORM_INT101010</code>.
</td>
</tr>
<tr>
<td align="left">
<code class="constant">CL_RGBA</code>
</td>
<td align="left"> </td>
</tr>
<tr>
<td align="left"><code class="constant">CL_sRGB</code>, <code class="constant">CL_sRGBx</code>, <code class="constant">CL_sRGBA</code>, <code class="constant">CL_sBGRA</code></td>
<td align="left">
These formats can only be used if channel data type = <code class="constant">CL_UNORM_INT8</code>.
</td>
</tr>
<tr>
<td align="left"><code class="constant">CL_ARGB</code>, <code class="constant">CL_BGRA</code>, <code class="constant">CL_ABGR</code></td>
<td align="left">
These formats can only be used if channel data type =
<code class="constant">CL_UNORM_INT8</code>, <code class="constant">CL_SNORM_INT8</code>,
<code class="constant">CL_SIGNED_INT8</code> or <code class="constant">CL_UNSIGNED_INT8</code>.
</td>
</tr>
<tr>
<td align="left">
<code class="constant">CL_DEPTH_STENCIL</code>
</td>
<td align="left">
This format can only be used if channel data type =
<code class="constant">CL_UNORM_INT24</code> or <code class="constant">CL_FLOAT</code>
(applies if the
<a class="citerefentry" href="cl_khr_gl_depth_images.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_depth_images</span></span></a>
extension is enabled).
</td>
</tr>
</tbody>
</table>
</div>
<p>
</p>
</dd>
<dt>
<span class="term">image_channel_data_type</span>
</dt>
<dd>
Describes the size of the channel data type. The number of bits per element determined by the
<code class="constant">image_channel_data_type</code> and <code class="constant">image_channel_order</code>
must be a power of two. The list of supported values is described in the table (Table 5.7) below.
<div class="informaltable"><table class="informaltable" border="1"><colgroup><col align="left" class="col1" /><col align="left" class="col2" /></colgroup><thead><tr><th align="left">Image Channel Data Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><code class="constant">CL_SNORM_INT8</code></td><td align="left">Each channel component is a normalized signed 8-bit integer value.</td></tr><tr><td align="left"><code class="constant">CL_SNORM_INT16</code></td><td align="left">Each channel component is a normalized signed 16-bit integer value.</td></tr><tr><td align="left"><code class="constant">CL_UNORM_INT8</code></td><td align="left">Each channel component is a normalized unsigned 8-bit integer value.</td></tr><tr><td align="left"><code class="constant">CL_UNORM_INT16</code></td><td align="left">Each channel component is a normalized unsigned 16-bit integer value.</td></tr><tr><td align="left"><code class="constant">CL_UNORM_SHORT_565</code></td><td align="left">
Represents a normalized 5-6-5 3-channel RGB image. The channel order must be
<code class="constant">CL_RGB</code> or <code class="constant">CL_RGBx</code>.
</td></tr><tr><td align="left"><code class="constant">CL_UNORM_SHORT_555</code></td><td align="left">
Represents a normalized x-5-5-5 4-channel xRGB image.
The channel order must be <code class="constant">CL_RGB</code> or <code class="constant">CL_RGBx</code>.
</td></tr><tr><td align="left"><code class="constant">CL_UNORM_INT_101010</code></td><td align="left">
Represents a normalized x-10-10-10 4-channel xRGB image.
The channel order must be <code class="constant">CL_RGB</code> or <code class="constant">CL_RGBx</code>.
</td></tr><tr><td align="left"><code class="constant">CL_SIGNED_INT8</code></td><td align="left">Each channel component is an unnormalized signed 8-bit integer value.</td></tr><tr><td align="left"><code class="constant">CL_SIGNED_INT16</code></td><td align="left">Each channel component is an unnormalized signed 16-bit integer value.</td></tr><tr><td align="left"><code class="constant">CL_SIGNED_INT32</code></td><td align="left">Each channel component is an unnormalized signed 32-bit integer value.</td></tr><tr><td align="left"><code class="constant">CL_UNSIGNED_INT8</code></td><td align="left">Each channel component is an unnormalized unsigned 8-bit integer value.</td></tr><tr><td align="left"><code class="constant">CL_UNSIGNED_INT16</code></td><td align="left">Each channel component is an unnormalized unsigned 16-bit integer value.</td></tr><tr><td align="left"><code class="constant">CL_UNSIGNED_INT32</code></td><td align="left">Each channel component is an unnormalized unsigned 32-bit integer value.</td></tr><tr><td align="left"><code class="constant">CL_HALF_FLOAT</code></td><td align="left">Each channel component is a 16-bit half-float value.</td></tr><tr><td align="left"><code class="constant">CL_FLOAT</code></td><td align="left">Each channel component is a single precision floating-point value.</td></tr><tr><td align="left"><code class="constant">CL_FLOAT</code></td><td align="left">
Each channel component is a single precision floating point value
(applies if the
<a class="citerefentry" href="cl_khr_gl_depth_images.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_depth_images</span></span></a>
extension is enabled).
</td></tr><tr><td align="left"><code class="constant">CL_UNORM_INT24</code></td><td align="left">
Each channel component is a normalized unsigned 24-bit integer value
(applies if the
<a class="citerefentry" href="cl_khr_gl_depth_images.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_depth_images</span></span></a>
extension is enabled).
</td></tr></tbody></table></div></dd>
</dl>
</div>
</div>
<div class="refsect1">
<a id="description"></a>
<h2>Description</h2>
<p>
For example, to specify a normalized unsigned 8-bit / channel RGBA image:
</p>
<p>
</p>
<div class="literallayout">
<p>          <code class="code">image_channel_order</code> = <code class="constant">CL_RGBA</code><br />
          <code class="code">image_channel_data_type</code> = <code class="constant">CL_UNORM_INT8</code><br />
</p>
</div>
<p>
</p>
<p>
<code class="varname">image_channel_data_type</code> values of
<code class="constant">CL_UNORM_SHORT_565</code>, <code class="constant">CL_UNORM_SHORT_555</code>,
<code class="constant">CL_UNORM_INT_101010</code>,
and <code class="constant">CL_UNORM_INT_101010_2</code> are special cases of packed image
formats where the channels of each element are packed into a single unsigned
short or unsigned int. For these special packed image formats, the channels
are normally packed with the first channel in the most significant bits of
the bitfield, and successive channels occupying progressively less significant
locations. For <code class="constant">CL_UNORM_SHORT_565</code>, R is in bits 15:11, G is
in bits 10:5 and B is in bits 4:0. For <code class="constant">CL_UNORM_SHORT_555</code>,
bit 15 is undefined, R is in bits 14:10, G in bits 9:5 and B in bits 4:0. For
<code class="constant">CL_UNORM_INT_101010</code>, bits 31:30 are undefined, R is in bits 29:20,
G in bits 19:10 and B in bits 9:0.
For <code class="constant">CL_UNORM_INT_101010_2</code>, R is in bits 31:22, G in bits 21:12,
B in bits 11:2 and A in bits 1:0.
</p>
<p>
OpenCL implementations must maintain the minimum precision specified by the number
of bits in <code class="varname">image_channel_data_type</code>. If the image format specified
by <code class="varname">image_channel_order</code>, and <code class="varname">image_channel_data_type</code>
cannot be supported by the OpenCL implementation, then the call to
<a class="citerefentry" href="clCreateImage.html"><span class="citerefentry"><span class="refentrytitle">clCreateImage</span></span></a> will return
a NULL memory object.
</p>
</div>
<div class="refsect1">
<a id="specification"></a>
<h2>Specification</h2>
<p>
<img src="pdficon_small1.gif" />
<a href="https://www.khronos.org/registry/cl/specs/opencl-2.1.pdf#page=131" target="OpenCL Spec">OpenCL Specification</a>
</p>
</div>
<div class="refsect1">
<a id="seealso"></a>
<h2>Also see</h2>
<p>
<a class="citerefentry" href="cl_image_desc.html"><span class="citerefentry"><span class="refentrytitle">cl_image_desc Image Descriptor</span></span></a>,
<a class="citerefentry" href="EXTENSION.html"><span class="citerefentry"><span class="refentrytitle">EXTENSION</span></span></a>,
<a class="citerefentry" href="clGetSupportedImageFormats.html"><span class="citerefentry"><span class="refentrytitle">clGetSupportedImageFormats</span></span></a>,
<a class="citerefentry" href="clCreateImage.html"><span class="citerefentry"><span class="refentrytitle">clCreateImage</span></span></a>
</p>
</div>
<div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>Copyright © 2007-2015 The Khronos Group Inc.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.
</div>
</div>
</body>
</html>