Exemple #1
0
 def GetResourceAndRender(self, resourceTypeID):
     """
     Get the spherical harmonic from planetSvc going to server if nessesasary.
     We render the SH in slices yielding in between so we won't stall the client.
     We check if we are still rendering the correct resournce whenever we have yielded the thread.
     """
     self.LogInfo('GetResourceAndRender resourceTypeID', resourceTypeID)
     planet = sm.GetService('planetSvc').GetPlanet(self.planetID)
     inRange, sh = planet.GetResourceData(resourceTypeID)
     self.currSphericalHarmonic = sh
     sh = builder.CopySH(sh)
     builder.ScaleSH(sh, 1.0 / const.planetResourceMaxValue)
     chart = self.ChartResourceLayer(sh)
     buf = chart.makeChart2(chart.PNG)
     if resourceTypeID != self.selectedResourceTypeID:
         raise ResourceRenderAbortedError
     bmp = trinity.Tr2HostBitmap(PLANET_RESOURCE_TEX_WIDTH,
                                 PLANET_RESOURCE_TEX_HEIGHT, 1,
                                 trinity.PIXEL_FORMAT.B8G8R8X8_UNORM)
     bmp.LoadFromPngInMemory(buf)
     texture = trinity.TriTextureRes()
     if resourceTypeID != self.selectedResourceTypeID:
         raise ResourceRenderAbortedError
     texture.CreateFromHostBitmap(bmp)
     if resourceTypeID != self.selectedResourceTypeID:
         raise ResourceRenderAbortedError
     return (inRange, texture)
Exemple #2
0
 def ShowSH(self, sh, scaleIt=True):
     if scaleIt:
         builder.ScaleSH(sh, 1.0 / const.planetResourceMaxValue)
     chart = self.ChartResourceLayer(sh)
     buf = chart.makeChart2(chart.PNG)
     bmp = trinity.Tr2HostBitmap(PLANET_RESOURCE_TEX_WIDTH,
                                 PLANET_RESOURCE_TEX_HEIGHT, 1,
                                 trinity.TRIFMT_X8R8G8B8)
     bmp.LoadFromPngInMemory(buf)
     texture = trinity.TriTextureRes()
     texture.CreateFromHostBitmap(bmp)
     if self.planetTransform is not None:
         self.EnableResourceLayer()
         self.SetResourceTexture(texture)
Exemple #3
0
 def GetResourceAndRender(self, resourceTypeID):
     self.LogInfo('GetResourceAndRender resourceTypeID', resourceTypeID)
     planet = sm.GetService('planetSvc').GetPlanet(self.planetID)
     inRange, sh = planet.GetResourceData(resourceTypeID)
     self.currSphericalHarmonic = sh
     sh = builder.CopySH(sh)
     builder.ScaleSH(sh, 1.0 / const.planetResourceMaxValue)
     chart = self.ChartResourceLayer(sh)
     buf = chart.makeChart2(chart.PNG)
     if resourceTypeID != self.selectedResourceTypeID:
         raise ResourceRenderAbortedError
     bmp = trinity.Tr2HostBitmap(PLANET_RESOURCE_TEX_WIDTH,
                                 PLANET_RESOURCE_TEX_HEIGHT, 1,
                                 trinity.PIXEL_FORMAT.B8G8R8X8_UNORM)
     bmp.LoadFromPngInMemory(buf)
     texture = trinity.TriTextureRes()
     if resourceTypeID != self.selectedResourceTypeID:
         raise ResourceRenderAbortedError
     texture.CreateFromHostBitmap(bmp)
     if resourceTypeID != self.selectedResourceTypeID:
         raise ResourceRenderAbortedError
     return (inRange, texture)