2
0

TextureCube.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. namespace BansheeEngine
  4. {
  5. public sealed class TextureCube : Texture
  6. {
  7. // For internal use by the runtime
  8. private TextureCube()
  9. { }
  10. public TextureCube(PixelFormat format, int width, int height, TextureUsage usage = TextureUsage.Default,
  11. int numSamples = 1, bool hasMipmaps = false, bool gammaCorrection = false)
  12. {
  13. Internal_CreateInstance(this, format, width, height, usage, numSamples, hasMipmaps, gammaCorrection);
  14. }
  15. public PixelData GetPixels(CubeFace face = CubeFace.PositiveX, int mipLevel = 0)
  16. {
  17. return Internal_GetPixels(mCachedPtr, face, mipLevel);
  18. }
  19. public void SetPixels(PixelData data, CubeFace face = CubeFace.PositiveX, int mipLevel = 0)
  20. {
  21. Internal_SetPixels(mCachedPtr, data, face, mipLevel);
  22. }
  23. public AsyncOp GetGPUPixels(CubeFace face = CubeFace.PositiveX, int mipLevel = 0)
  24. {
  25. return Internal_GetGPUPixels(mCachedPtr, face, mipLevel);
  26. }
  27. [MethodImpl(MethodImplOptions.InternalCall)]
  28. private static extern void Internal_CreateInstance(TextureCube instance, PixelFormat format, int width,
  29. int height, TextureUsage usage, int numSamples, bool hasMipmaps, bool gammaCorrection);
  30. [MethodImpl(MethodImplOptions.InternalCall)]
  31. private static extern PixelData Internal_GetPixels(IntPtr thisPtr, CubeFace face, int mipLevel);
  32. [MethodImpl(MethodImplOptions.InternalCall)]
  33. private static extern AsyncOp Internal_GetGPUPixels(IntPtr thisPtr, CubeFace face, int mipLevel);
  34. [MethodImpl(MethodImplOptions.InternalCall)]
  35. private static extern void Internal_SetPixels(IntPtr thisPtr, PixelData data, CubeFace face, int mipLevel);
  36. }
  37. public enum CubeFace
  38. {
  39. PositiveX = 0,
  40. NegativeX = 1,
  41. PositiveY = 2,
  42. NegativeY = 3,
  43. PositiveZ = 4,
  44. NegativeZ = 5,
  45. }
  46. }