mirror of
https://github.com/opensim/opensim.git
synced 2026-08-07 09:45:47 +08:00
use the changes on csj2k decoder on war3d
This commit is contained in:
@@ -35,6 +35,7 @@ using OpenMetaverse;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Region.Framework.Interfaces;
|
||||
using OpenSim.Services.Interfaces;
|
||||
using CSJ2K;
|
||||
|
||||
namespace OpenSim.Region.CoreModules.World.Warp3DMap
|
||||
{
|
||||
@@ -144,7 +145,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
|
||||
{
|
||||
try
|
||||
{
|
||||
detailTexture[i] = (Bitmap)decoder.DecodeToImage(asset.Data);
|
||||
detailTexture[i] = (Bitmap)J2kImage.FromBytes(asset.Data, null, false, 8);
|
||||
//detailTexture[i] = (Bitmap)decoder.DecodeToImage(asset.Data);
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
|
||||
@@ -267,6 +267,7 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
|
||||
CreateAllPrims(renderer);
|
||||
|
||||
renderer.Render();
|
||||
|
||||
Bitmap bitmap = renderer.Scene.getImage();
|
||||
|
||||
renderer.Scene.destroy();
|
||||
@@ -511,14 +512,13 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
|
||||
}
|
||||
else // It's sculptie
|
||||
{
|
||||
if (m_imgDecoder is not null)
|
||||
//Image sculpt = m_imgDecoder.DecodeToImage(sculptAsset.Data);
|
||||
Image sculpt = J2kImage.FromBytes(sculptAsset.Data, null, true, 12);
|
||||
if (sculpt is not null)
|
||||
{
|
||||
Image sculpt = m_imgDecoder.DecodeToImage(sculptAsset.Data);
|
||||
if (sculpt is not null)
|
||||
{
|
||||
renderMesh = m_primMesher.GenerateFacetedSculptMesh(omvPrim, (Bitmap)sculpt, lod);
|
||||
sculpt.Dispose();
|
||||
}
|
||||
renderMesh = m_primMesher.GenerateFacetedSculptMesh(omvPrim, (Bitmap)sculpt, lod);
|
||||
//sculpt.Save("lixo12-"+prim.UUID.ToString()+".png",ImageFormat.Png);
|
||||
sculpt.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -751,8 +751,12 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
|
||||
{
|
||||
try
|
||||
{
|
||||
using (Bitmap img = (Bitmap)m_imgDecoder.DecodeToImage(asset.Data))
|
||||
//using (Bitmap img = (Bitmap)m_imgDecoder.DecodeToImage(asset.Data))
|
||||
using (Bitmap img = (Bitmap)J2kImage.FromBytes(asset.Data,null, false, 16))
|
||||
{
|
||||
//img.Save("lixo"+id.ToString()+".png",ImageFormat.Png);
|
||||
ret = new warp_Texture(img, 8); // reduce textures size to 256 * 256
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -820,8 +824,7 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
|
||||
|
||||
try
|
||||
{
|
||||
using (MemoryStream stream = new MemoryStream(j2kData))
|
||||
using (Bitmap bitmap = (Bitmap)J2kImage.FromStream(stream))
|
||||
using (Bitmap bitmap = (Bitmap)J2kImage.FromBytes(j2kData))
|
||||
{
|
||||
width = bitmap.Width;
|
||||
height = bitmap.Height;
|
||||
|
||||
@@ -180,18 +180,20 @@ namespace PrimMesher
|
||||
if (stopAngle <= startAngle)
|
||||
throw new Exception("stopAngle not greater than startAngle");
|
||||
|
||||
if ((sides == 3 || sides == 4 || sides == 6 || sides == 12 || sides == 24))
|
||||
{
|
||||
startAngle *= twoPiInv;
|
||||
stopAngle *= twoPiInv;
|
||||
Angle[] sourceAngles = sides switch
|
||||
{
|
||||
3 => angles3,
|
||||
4 => angles4,
|
||||
6 => angles6,
|
||||
12 => angles12,
|
||||
_ => angles24,
|
||||
24 => angles24,
|
||||
_ => null
|
||||
};
|
||||
|
||||
if (sourceAngles != null)
|
||||
{
|
||||
startAngle *= twoPiInv;
|
||||
stopAngle *= twoPiInv;
|
||||
int startAngleIndex = (int)(startAngle * sides);
|
||||
int endAngleIndex = sourceAngles.Length - 1;
|
||||
|
||||
@@ -202,7 +204,7 @@ namespace PrimMesher
|
||||
if (endAngleIndex == startAngleIndex)
|
||||
endAngleIndex++;
|
||||
|
||||
for (int angleIndex = startAngleIndex; angleIndex < endAngleIndex + 1; angleIndex++)
|
||||
for (int angleIndex = startAngleIndex; angleIndex <= endAngleIndex; angleIndex++)
|
||||
{
|
||||
angles.Add(sourceAngles[angleIndex]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user