a:4:{s:8:"template";s:12280:"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<title>{{ keyword }}</title>
<style media="screen" rel="stylesheet" type="text/css">
#art-main
{
   font-family: Century Gothic;
   font-style: normal;
   font-weight: normal;
   font-size: 13px;
   text-align: justify;
}

p, a, ul, li
{
   margin: 0;
   padding: 0;
}

ul
{
   list-style-type: none;
}

html, body
{
   height:100%;
}

#art-main
{
   position: relative;
   z-index: 0;
   width: 100%;
   min-height: 100%;
   left: 0;
   top: 0;
   cursor:default;
   overflow:hidden;
}

body
{
   padding: 0;
   margin:0;
   min-width: 1000px;
   color: #292929;
   background-color: #FFFFFF;
   background-image: url();
   background-repeat: no-repeat;
   background-attachment: scroll;
   background-position: top center;
}

.cleared
{
   display:block;
   clear: both;
   float: none;
   margin: 0;
   padding: 0;
   border: none;
   font-size: 0;
   height:0;
   overflow:hidden;
}

.reset-box
{
   overflow:hidden;
   display:table;
}

/* Start Box */
.art-box, .art-box-body {
   margin:0 auto;
   position:relative;
}
.art-box:before, .art-box:after, .art-box-body:before, .art-box-body:after {
   position:absolute;
   top:0;
   bottom:0;
   content:' ';
   background-repeat: no-repeat;
   line-height:0;
}
.art-box:before,.art-box-body:before{
   left:0;
}
.art-box:after,.art-box-body:after{
   right:0;
}
.art-box:before {
   overflow:hidden;
   background-position: bottom left;
   direction: ltr;
   z-index:-3;
}
.art-box:after {
   background-position: bottom right;
   z-index:-3;
}
.art-box-body:before, .art-box-body:after {
   background-repeat:repeat-y;
}
.art-box-body:before {
   background-position: top left;
   z-index:-3;
}
.art-box-body:after {
   background-position: top right;
   z-index:-3;
}
/* End Box */

/* Start Bar */
.art-bar {
   position:relative;
}
.art-bar:before, .art-bar:after {
   position:absolute;
   top:0;
   bottom:0;
   content:' ';
   background-repeat:repeat;
   z-index:-1;
}
.art-bar:before {
   left:0;
   background-position: top left;
}
.art-bar:after {
   right:0;
   background-position: top right;
}
/* End Bar */ 
/* end Page */

/* begin Header */
div.art-header
{
   margin: 0 auto;
   position: relative;
   z-index: -5;
   width:1000px;
   height: 174px;
   margin-top: 0;
   margin-bottom: 0;
}
.art-header-position
{
   position: absolute;
   top: 0;
   right: 0;
   left: 0;
} 

.art-header-wrapper 
{
   position: relative;
   top:0;
   width:1000px;
   margin:0 auto;
}
.art-header-inner 
{
   position: relative;
   margin: 0 10px;
}

/* end Header */

/* begin Logo */
div.art-logo
{
   display: block;
   position: absolute;
   top: 159px;
   left: 50%;
   margin-left: -482px;
   width: 965px;
}

/* end Logo */

/* begin Menu */
/* menu structure */

ul.art-hmenu a, ul.art-hmenu a:link, ul.art-hmenu a:visited, ul.art-hmenu a:hover 
{
   outline: none;
   position: relative;
   z-index: 11;
}

ul.art-hmenu, ul.art-hmenu ul
{
   display: block;
   margin: 0;
   padding: 0;
   border: 0;
   list-style-type: none;
}

ul.art-hmenu li
{
   margin: 0;
   padding: 0;
   border: 0;
   display: block;
   float: left;
   position: relative;
   z-index: 5;
   background: none;
}

ul.art-hmenu li:hover{
   z-index: 10000;
   white-space: normal;
}
ul.art-hmenu li li{
   float: none;
   width: auto;
}
ul.art-hmenu li:hover>ul {
   visibility: visible;
   top: 100%;
}
ul.art-hmenu:after, ul.art-hmenu ul:after
{
   content: ".";
   height: 0;
   display: block;
   visibility: hidden;
   overflow: hidden;
   clear: both;
}
ul.art-hmenu, ul.art-hmenu ul {
   background-image: url();
   min-height: 0;
}

ul.art-hmenu ul
{
   visibility: hidden;
   position: absolute;
   z-index: 10;
   left: 0;
   top: 0;
   background-image: url();
   padding: 10px 30px 30px 30px;
   margin: -10px 0 0 -30px;
}

ul.art-hmenu{
   position:relative;
   padding: 13px 10px 13px 10px;
   float: left;
   left: 50%;
}
div.art-nav-center{
   position: relative;
   float: right;
   right: 50%;
}
/* end menu structure */

/* menu bar */

.art-nav
{
   width:1000px;
   margin:0 auto;
   min-height: 65px;
   z-index: 100;
   margin-top: 3px;
   margin-bottom: -7px;
}

.art-nav:before, .art-nav:after{
   background-image: url();
}
.art-nav:before{
   right: 26px;
}
.art-nav:after{
   width: 26px;
}
/* end menu bar */
.art-nav-outer{
   position:absolute;
   width:100%;
}
.art-nav-wrapper 
{
   position: relative;
   width:1000px;
   margin:0 auto;
}

.art-nav-inner{
   margin: 0 17px;
}

/* end Menu */

/* begin MenuItem */
ul.art-hmenu>li>a
{
   position: relative;
   display: block;
   height: 39px;
   cursor: pointer;
   text-decoration: none;
   color: #050B96;
   padding: 0 28px;
   line-height: 39px;
   text-align: center;
}

ul.art-hmenu>li>a:before, ul.art-hmenu>li>a:after
{
   position: absolute;
   display: block;
   content:' ';
   top: 0;
   bottom:0;
   z-index: -1;
   background-image: url();
}

ul.art-hmenu>li>a:before
{
   left: 0;
   right: 4px;
   background-position: top left;
}

ul.art-hmenu>li>a:after
{
   width: 4px;
   right: 0;
   background-position: top right;
}

.art-hmenu a, .art-hmenu a:link, .art-hmenu a:visited, .art-hmenu a:hover
{
   text-align: left;
   text-decoration: none;
}

ul.art-hmenu>li>a:hover:before {
   background-position: center left;
}
ul.art-hmenu>li>a:hover:after {
   background-position: center right;
}
ul.art-hmenu>li>a:hover, ul.art-hmenu>li:hover>a{
   color: #D4D4D4;
}

/* end MenuItem */

/* begin MenuSeparator */
ul.art-hmenu>li:before
{
   position:absolute;
   display: block;
   content:' ';
   top:0;
   left:  -13px;
   width:13px;
   height: 39px;
   background: url() center center no-repeat;
}

ul.art-hmenu>li {
   margin-left:13px;
}
ul.art-hmenu>li:first-child {
   margin-left:0;
}

ul.art-hmenu>li:first-child:before{
   display:none;
}
/* end MenuSeparator */

/* begin MenuSubItem */
.art-hmenu ul a
{
   display: block;
   white-space: nowrap;
   height: 26px;
   background-image: url();
   background-position: left top;
   background-repeat: repeat-x;
   border-width: 1px;
   border-style: solid;
   border-top-width: 0;
   border-color: #595959;
   min-width: 7em;
   text-align: left;
   text-decoration: none;
   line-height: 26px;
   color: #FCC5C8;
   font-size: 12px;
   margin:0;
   padding: 0 17px;
}

.art-hmenu ul>li:first-child>a
{
   border-top-width: 1px;
}

.art-hmenu ul a:link, .art-hmenu ul a:visited, .art-hmenu ul a:hover, .art-hmenu ul a:active
{
   text-align: left;
   text-decoration: none;
   line-height: 26px;
   color: #FCC5C8;
   font-size: 12px;
   margin:0;
   padding: 0 17px;
}

.art-hmenu ul li a:hover
{
   color: #D9D9D9;
   background-position: left bottom;
   border-color: #595959;
   border-top-width: 1px !important;
}

.art-hmenu ul li:hover>a
{
   color: #D9D9D9;
   background-position: left bottom;
   border-color: #595959;
   border-top-width: 1px !important;
}

/* end MenuSubItem */

/* begin Box, Sheet */
.art-sheet
{
   max-width:1000px;
   margin-top: 3px;
   margin-bottom: -7px;
   cursor:auto;
   width: 1000px;
}
.art-sheet-body 
{
   padding:17px;
   min-width:46px;
   min-height:46px;
   padding-top:17px;
   padding-bottom:17px;
}
.art-sheet:before, .art-sheet:after 
{
   content: url();
   font-size: 0;
   background-image: url();
}
.art-sheet:after{
   clip:rect(auto, auto, auto, 960px);
}
.art-sheet:before,.art-sheet-body:before{
   right:40px;
}
.art-sheet-body:after{
   width: 40px;
   top:40px;
   bottom:40px;
   background-image:url();
}
.art-sheet-body:before{
   top:40px;
   bottom:40px;
   background-image:url();
}

.art-footer
{
   position: relative;
   margin-top:0;
   margin-bottom:0;
   width: 100%;
}

.art-footer-body
{
   position:relative;
   padding: 15px;
   color: #000000;
   font-size: 11px;
}

.art-footer-body:before
{
   position: absolute;
   content:' ';
   z-index:-2;
   left:0;
   right:0;
   top:0;
   bottom:3px;
   background:rgba(224, 223, 223, 1);
   background-position:bottom left;
}

.art-footer:before, .art-footer:after 
{
   position: absolute;
   content:' ';
   z-index:-2;
   bottom:0;
   height:3px;
   background:#170BA0;
}

.art-footer:before
{
   left:0;
   right:3px;
   background-position: bottom left;
}

.art-footer:after
{
   right:0;
   width:3px;
   background-position: bottom right;
}

.art-footer-body .art-rss-tag-icon
{
   position: absolute;
   left:   6px;
   bottom:15px;
   z-index:1;
}

.art-rss-tag-icon
{
   display: block;
   background-image: url();
   background-position: center right;
   background-repeat: no-repeat;
   height: 30px;
   width: 32px;
   cursor: default;
}

.art-footer-text p
{
   padding:0;
   margin:0;
   text-align: center;
}

.art-footer-body a,
.art-footer-body a:link,
.art-footer-body a:visited,
.art-footer-body a:hover
{
   color: #000000;
   font-size: 11px;
}

.art-footer-text
{
   min-height: 30px;
   padding-left: 10px;
   padding-right: 10px;
   text-align: center;
}

.art-footer-body a,
.art-footer-body a:link
{
   color: #FA999E;
   text-decoration: none;
}

.art-footer-body a:visited
{
   color: #9E9E9E;
}

.art-footer-body a:hover
{
   color: #402903;
   text-decoration: underline;
}/* end Footer */

/* begin PageFooter */
.art-page-footer
{
   font-family: Arial;
   font-size: 10px;
   letter-spacing: normal;
   word-spacing: normal;
   font-style: normal;
   font-weight: normal;
   text-decoration: underline;
   color: #A00810;
}

.art-page-footer
{
   position: relative;
   z-index: 10;
   padding: 1em;
   text-align: center;
   text-decoration: none;
   color: #1C1C1C;
}

</style>

</head><body class="">
<div id="art-main">
<div class="cleared reset-box"></div>
<div class="art-header">
<div class="art-header-position">
<div class="art-header-wrapper">
<div class="cleared reset-box"></div>
<div class="art-header-inner">
<div class="art-logo">
</div>
</div>
</div>
</div>
</div>
<div class="cleared reset-box"></div>
<div class="art-bar art-nav">
<div class="art-nav-outer">
<div class="art-nav-wrapper">
<div class="art-nav-inner">
<div class="art-nav-center">
<ul class="art-hmenu menu-2">
<li class="menu-item-47"><a href="#" title="Home">Home</a>
</li>
<li class="menu-item-41"><a href="#" title="About us">About us</a>
<ul>
<li class="menu-item-42"><a href="#" title="Business Philosophy">Business Philosophy</a>
</li>
<li class="menu-item-50"><a href="#" title="Organisation Structure">Organisation Structure</a>
</li>
</ul>
</li>
<li class="menu-item-44"><a href="#" title="CASES">CASES</a>
</li>
<li class="menu-item-46"><a href="#" title="Services And Support">Services And Support</a>
</li>
<li class="menu-item-221"><a href="#" title="Products and Services">Products and Services</a>
<ul>
<li class="menu-item-111"><a href="#" title="Solar Systems">Solar Systems</a>
</li>
<li class="menu-item-110"><a href="#" title="Irrigation Systems">Irrigation Systems</a>
</li>
<li class="menu-item-112"><a href="#" title="Swimming Pools">Swimming Pools</a>
</li>
<li class="menu-item-218"><a href="#" title="Electrical Control Systems">Electrical Control Systems</a>
</li>
<li class="menu-item-219"><a href="#" title="Generator Sales and Service">Generator Sales and Service</a>
</li>
<li class="menu-item-220"><a href="#" title="Water Treatment Equipment">Water Treatment Equipment</a>
</li>
</ul>
</li>
<li class="menu-item-43"><a href="#" title="Contact us">Contact us</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="cleared reset-box"></div>
<div class="art-box art-sheet">
<div class="art-box-body art-sheet-body">

{{ text }}
    <div class="art-footer">
<div class="art-footer-body">
<a class="art-rss-tag-icon" href="#" title="{{ keyword }} RSS Feed"></a>
<div class="art-footer-text">
<p>Copyright All Rights Reserved  Jobak Engineering Ltd 2017 Powered by Hostalite</p>
</div>
<div class="cleared"></div>
</div>
</div>
<div class="cleared"></div>
</div>
</div>
<div class="cleared"></div>
<div class="cleared"></div>
</div>
<div id="wp-footer">
<p class="art-page-footer"></p>




</div>
</body>
</html>";s:4:"text";s:3174:"So what do you need if youd like to create multithread texture loading in OpenGL ? Is it allowed to create egl context from main() and render from another thread, given the fact that the context handles are passed from main() to the thread's function? Creating the shared context kills the opengl context. This means that no matter what you do on the CPU side, GL commands will be serially executed for each context independently, with no guaranteed order for commands from multiple contexts. Shared context and multi-threading; ... Senior Member OpenGL Lord. The number of background threads should be kept to a minimum (e.g. This way, all data loaded on the second context will be available on the main one  you can just create a texture normally on the loader thread, and then glBindTexture() it on the main thread, for example. ... Can I create an OpenGL context for a control in a ... wglShareLists causes a few things to be shared Additional threads (created with a shared context) should only be used for shader compilation and buffer data upload. Hi, We are using Xamarin.Android 4.12 and we have the same problem. refer to chapter 2.6.10 of OpenGL 4.4 core specification. Creating multiple OpenGL contexts with GLFW ... already existing D3D11/D3D12 device or OpenGL/GLES context. However, I have been unable to create a shared OpenGLES/EGL context that covers two screens - whether two physical and or a physical and a virtual. How to share GPU memory from different host threads? I then create a context on the 'virtual' screen that should share this first context. Given that creating an OpenGL context is quite a ... away the difference between desktop GL and OpenGL ES; ... immediately across multiple threads. In most cases this also means working with multiple OpenGL contexts and, on occasion, threads. Those who have used OpenGL are probably aware that you can only invoke OpenGL procedures for a given context on the ... multiple threads on shared If your app uses GLSurfaceView, it creates this dedicated OpenGL ES rendering thread automatically. Is it possible to share an opengl framebuffer object between contexts/threads? 2. one thread per-CPU core). OpenSceneGraph Forum ... and "shared" OpenGL context guaranteed to have the same OpenGL version ... threads with the associated graphics contexts/windows. In most cases this also means working with multiple OpenGL contexts and, on occasion, threads. ... OpenGL context for each thread ... between contexts. Download Sharing Surfaces Code Sample Zipfile. How to use a multi-thread OpenGL application to update VBOs and use them at the same time? A primary thread should be used for all rendering. copy OpenGL sharing then shared context with another device CPU is not ... OpenCL allows creating shared context between the CPU and the GPU so ... THREADS Single Some other drivers may behave in unexpected ways when trying to utilize shared resources between different threads. Join Date Maybe it's possible for an Android app to have 2 EGL contexts open simultaneously, but I have not seen this done in Java apps. ... between contexts? I start by creating the initial context on the 'physical' screen. ";s:7:"keyword";s:37:"opengl shared context between threads";s:7:"expired";i:-1;}