// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.UpArrow)) { objData++; } if (Input.GetKeyDown(KeyCode.DownArrow)) { objData--; } if (objData > TRANSFORM.SizZ) { objData = TRANSFORM.PosX; } if (objData < TRANSFORM.PosX) { objData = TRANSFORM.SizZ; } Vector3 pos = transform.localPosition; Vector3 siz = transform.localScale; Quaternion p = transform.rotation; switch (objData) { case TRANSFORM.PosX: pos.x += ChangeNum(); break; case TRANSFORM.PosY: pos.y += ChangeNum(); break; case TRANSFORM.PosZ: pos.z += ChangeNum(); break; case TRANSFORM.SizX: siz.x += ChangeNum(); break; case TRANSFORM.SizY: siz.y += ChangeNum(); break; case TRANSFORM.SizZ: siz.y += ChangeNum(); break; case TRANSFORM.RollX: break; case TRANSFORM.RollY: break; case TRANSFORM.RollZ: break; } transform.localPosition = pos; transform.localScale = siz; TextOutput(); }
public static void OpaquePixelsConvert <TSrcPixel, TDstPixel>(SpanBitmap <TSrcPixel> src, SpanBitmap <TDstPixel> dst, TRANSFORM srcXform, bool useBilinear) where TSrcPixel : unmanaged, Pixel.IConvertTo where TDstPixel : unmanaged { void _rowProcessorNearest(Span <TDstPixel> dst, SpanQuantized8Sampler <TSrcPixel, TSrcPixel> src, _RowTransformIterator srcIterator) { for (int i = 0; i < dst.Length; ++i) { srcIterator.MoveNext(out int sx, out int sy); src.GetSourcePixelOrDefault(sx, sy).CopyTo(ref dst[i]); } } void _rowProcessorBilinear(Span <TDstPixel> dst, SpanQuantized8Sampler <TSrcPixel, TSrcPixel> src, _RowTransformIterator srcIterator) { for (int i = 0; i < dst.Length; ++i) { srcIterator.MoveNext(out int sx, out int sy, out int rx, out int ry); src.GetSampleOrDefault(sx, sy, rx, ry).CopyTo(ref dst[i]); } } var p = useBilinear ? (_ProcessRowCallback8 <TSrcPixel, TSrcPixel, TDstPixel>)_rowProcessorBilinear : (_ProcessRowCallback8 <TSrcPixel, TSrcPixel, TDstPixel>)_rowProcessorNearest; _ProcessRows(dst, src, srcXform, p); }
public static void ComposePixels <TSrcPixel, TDstPixel>(SpanBitmap <TSrcPixel> src, SpanBitmap <TDstPixel> dst, TRANSFORM srcXform, bool useBilinear, float opacity) where TSrcPixel : unmanaged, Pixel.IConvertTo where TDstPixel : unmanaged, Pixel.IConvertTo { int opacityQ = (int)(opacity * 256); void _rowProcessorNearest(Span <TDstPixel> dst, SpanQuantized8Sampler <TSrcPixel, Pixel.BGRP32> src, _RowTransformIterator srcIterator) { Pixel.BGRP32 srcPixel = default; Pixel.BGRP32 composer = default; for (int i = 0; i < dst.Length; ++i) { srcIterator.MoveNext(out int sx, out int sy); src.GetSourcePixelOrDefault(sx, sy).CopyTo(ref srcPixel); if (srcPixel.A == 0) { continue; } ref var dstI = ref dst[i]; dstI.CopyTo(ref composer); composer.SetSourceOver(srcPixel, opacityQ); composer.CopyTo(ref dstI); } }
public static void OpaquePixelsDirect <TPixel>(SpanBitmap <TPixel> src, SpanBitmap <TPixel> dst, TRANSFORM srcXform) where TPixel : unmanaged { void _rowProcessor(Span <TPixel> dst, SpanQuantized8Sampler <TPixel, TPixel> src, _RowTransformIterator srcIterator) { for (int i = 0; i < dst.Length; ++i) { srcIterator.MoveNext(out int sx, out int sy); dst[i] = src.GetSourcePixelOrDefault(sx, sy); } } _ProcessRows(dst, src, srcXform, (_ProcessRowCallback8 <TPixel, TPixel, TPixel>)_rowProcessor); }