enable the upload region map texture asset for large regions for large regions that i had disabled, but with max size reduced to 512pixels. New viewers don't use this, but osGetRegionMapTexture needs it ( mantis 7787 )
parent
37cb24da60
commit
7430c629aa
|
@ -1544,16 +1544,37 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
|
||||||
needRegionSave = true;
|
needRegionSave = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// bypass terrain image for large regions
|
if(mapbmp != null)
|
||||||
if (m_scene.RegionInfo.RegionSizeX <= Constants.RegionSize &&
|
|
||||||
m_scene.RegionInfo.RegionSizeY <= Constants.RegionSize
|
|
||||||
&& mapbmp != null)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
byte[] data;
|
byte[] data;
|
||||||
|
|
||||||
data = OpenJPEG.EncodeFromImage(mapbmp, true);
|
// if large region limit its size since new viewers will not use it
|
||||||
|
// but it is still usable for ossl
|
||||||
|
if(m_scene.RegionInfo.RegionSizeX > Constants.RegionSize ||
|
||||||
|
m_scene.RegionInfo.RegionSizeY > Constants.RegionSize)
|
||||||
|
{
|
||||||
|
int bx = mapbmp.Width;
|
||||||
|
int by = mapbmp.Height;
|
||||||
|
int mb = bx;
|
||||||
|
if(mb < by)
|
||||||
|
mb = by;
|
||||||
|
if(mb > 2 * Constants.RegionSize && mb > 0)
|
||||||
|
{
|
||||||
|
float scale = 2.0f * (float)Constants.RegionSize/(float)mb;
|
||||||
|
Size newsize = new Size();
|
||||||
|
newsize.Width = (int)(bx * scale);
|
||||||
|
newsize.Height = (int)(by * scale);
|
||||||
|
|
||||||
|
using(Bitmap scaledbmp = new Bitmap(mapbmp,newsize))
|
||||||
|
data = OpenJPEG.EncodeFromImage(scaledbmp, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
data = OpenJPEG.EncodeFromImage(mapbmp, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
data = OpenJPEG.EncodeFromImage(mapbmp, true);
|
||||||
|
|
||||||
if (data != null && data.Length > 0)
|
if (data != null && data.Length > 0)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue