public override bool SetFrameFormat(Image.PIXEL_FORMAT format, bool enabled)
 {
     if (enabled)
     {
         if (!this.mCameraImages.ContainsKey(format))
         {
             if (QCARWrapper.Instance.QcarSetFrameFormat((int)format, 1) == 0)
             {
                 Debug.LogError("Failed to set frame format");
                 return(false);
             }
             Image image = new ImageImpl {
                 PixelFormat = format
             };
             this.mCameraImages.Add(format, image);
             return(true);
         }
     }
     else if (this.mCameraImages.ContainsKey(format))
     {
         if (QCARWrapper.Instance.QcarSetFrameFormat((int)format, 0) == 0)
         {
             Debug.LogError("Failed to set frame format");
             return(false);
         }
         return(this.mCameraImages.Remove(format));
     }
     return(true);
 }
 private static void SetImageValues(QCARManagerImpl.ImageHeaderData imageHeader, ImageImpl image)
 {
     image.Width        = imageHeader.width;
     image.Height       = imageHeader.height;
     image.Stride       = imageHeader.stride;
     image.BufferWidth  = imageHeader.bufferWidth;
     image.BufferHeight = imageHeader.bufferHeight;
     image.PixelFormat  = (Image.PIXEL_FORMAT)imageHeader.format;
 }
    private static void AllocateImage(ImageImpl image)
    {
        image.Pixels = new byte[QCARWrapper.Instance.QcarGetBufferSize(image.BufferWidth,
                                                                       image.BufferHeight,
                                                                       (int)image.PixelFormat)];

        Marshal.FreeHGlobal(image.UnmanagedData);

        image.UnmanagedData = Marshal.AllocHGlobal(QCARWrapper.Instance.QcarGetBufferSize(image.BufferWidth,
                                                                                          image.BufferHeight,
                                                                                          (int)image.PixelFormat));
    }
        public MovieListResult(JMovieListResult jMovieListResult)
        {
            if (jMovieListResult == null)
            {
                Genres = new IGenre[0];
                Images = new IImage[0];
                Poster = new ImageImpl(null);
                return;
            }

            Id              = jMovieListResult.Id;
            SiteUrl         = jMovieListResult.site_url;
            PublicationDate = DateTimeHelper.GetDateTimeFromUnixTime(jMovieListResult.publication_date);
            Slug            = jMovieListResult.Slug;
            Title           = jMovieListResult.Title;
            Description     = jMovieListResult.Description;
            BodyText        = jMovieListResult.body_text;
            IsEditorsChoice = jMovieListResult.is_editors_choice;
            FavoritesCount  = jMovieListResult.favorites_count;
            Genres          = jMovieListResult.Genres != null
                ? (IEnumerable <IGenre>)jMovieListResult.Genres.Select(g => new Genre(g))
                : new IGenre[0];
            CommentsCount  = jMovieListResult.comments_count;
            OriginalTitle  = jMovieListResult.original_title;
            Locale         = jMovieListResult.Locale;
            Country        = jMovieListResult.Country;
            Year           = jMovieListResult.Year;
            Language       = jMovieListResult.Language;
            RunningTime    = jMovieListResult.running_time;
            BudgetCurrency = jMovieListResult.budget_currency;
            Budget         = jMovieListResult.Budget;
            MpaaRating     = jMovieListResult.mpaa_rating;
            AgeRestriction = jMovieListResult.age_restriction;
            Stars          = jMovieListResult.Stars;
            Director       = jMovieListResult.Director;
            Writer         = jMovieListResult.Writer;
            Trailer        = jMovieListResult.Trailer;
            Images         = jMovieListResult.Images != null
                ? (IEnumerable <IImage>)jMovieListResult.Images.Select(i => new ImageImpl(i))
                : new IImage[0];

            Poster     = new ImageImpl(jMovieListResult.Poster);
            Url        = jMovieListResult.Url;
            ImdbUrl    = jMovieListResult.imdb_url;
            ImdbRating = jMovieListResult.imdb_rating;
            Status     = jMovieListResult.Status;
        }
예제 #5
0
        public SelectionItem(JSelectionItem jSelectionItem)
        {
            if (jSelectionItem == null)
            {
                Place      = new Place(null);
                Daterange  = new DateImpl(null);
                FirstImage = new ImageImpl(null);
                return;
            }

            Id          = jSelectionItem.Id;
            Title       = jSelectionItem.Title;
            Description = jSelectionItem.Description;
            CType       = jSelectionItem.CType;
            Place       = new Place(jSelectionItem.Place);
            Daterange   = new DateImpl(jSelectionItem.Daterange);
            FirstImage  = new ImageImpl(jSelectionItem.first_image);
            ItemUrl     = jSelectionItem.Item_url;
        }
    private void CreateLetterMask()
    {
        this.InitImageHeader();
        ImageImpl mLetterMask = (ImageImpl)this.mLetterMask;

        SetImageValues(this.mLetterImageHeader, mLetterMask);
        AllocateImage(mLetterMask);
        this.mLetterImageHeader.data = mLetterMask.UnmanagedData;
        IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(QCARManagerImpl.ImageHeaderData)));

        Marshal.StructureToPtr(this.mLetterImageHeader, ptr, false);
        QCARWrapper.Instance.WordGetLetterMask(base.ID, ptr);
        this.mLetterImageHeader = (QCARManagerImpl.ImageHeaderData)Marshal.PtrToStructure(ptr, typeof(QCARManagerImpl.ImageHeaderData));
        if (this.mLetterImageHeader.reallocate == 1)
        {
            Debug.LogWarning("image wasn't allocated correctly");
        }
        else
        {
            mLetterMask.CopyPixelsFromUnmanagedBuffer();
            this.mLetterMask = mLetterMask;
            Marshal.FreeHGlobal(ptr);
        }
    }
예제 #7
0
        public SearchResult(JSearchResult jResult) : base(jResult)
        {
            if (jResult == null)
            {
                Place      = new Place(new JPlace());
                Coords     = new Coordinates(new JCoordinates());
                Dates      = new DateImpl(new JDate());
                FirstImage = new ImageImpl(new JImage());
                return;
            }

            Id          = jResult.Id;
            Title       = jResult.Title;
            Description = jResult.Description;
            Address     = jResult.Address;
            IsClosed    = jResult.Is_Closed;
            IsStub      = jResult.Is_Stub;
            CType       = jResult.Ctype.GetCType();
            Place       = new Place(jResult.Place);
            Coords      = new Coordinates(jResult.Coords);
            FirstImage  = new ImageImpl(jResult.first_image);
            ItemUrl     = jResult.item_url;
            Dates       = new DateImpl(jResult.Daterange);
        }
    // Enables or disables the request of the camera image in the desired pixel
    // format. Returns true on success, false otherwise. Note that this may
    // result in processing overhead. Image are accessed using GetCameraImage.
    // Note that there may be a delay of several frames until the camera image
    // becomes availables.
    public override bool SetFrameFormat(Image.PIXEL_FORMAT format, bool enabled)
    {
        if (enabled)
        {
            if (!mCameraImages.ContainsKey(format))
            {
                if (QCARWrapper.Instance.QcarSetFrameFormat((int)format, 1) == 0)
                {
                    Debug.LogError("Failed to set frame format");
                    return false;
                }

                Image newImage = new ImageImpl();
                newImage.PixelFormat = format;
                mCameraImages.Add(format, newImage);
                return true;
            }
        }
        else
        {
            if (mCameraImages.ContainsKey(format))
            {
                if (QCARWrapper.Instance.QcarSetFrameFormat((int)format, 0) == 0)
                {
                    Debug.LogError("Failed to set frame format");
                    return false;
                }

                return mCameraImages.Remove(format);
            }
        }

        return true;
    }
예제 #9
0
        public static StorageClass Parse(WordReader reader, uint wordCount)
        {
            var id = (Enumerant)reader.ReadWord();

            switch (id)
            {
            case Enumerant.UniformConstant:
                return(UniformConstantImpl.Parse(reader, wordCount - 1));

            case Enumerant.Input:
                return(InputImpl.Parse(reader, wordCount - 1));

            case Enumerant.Uniform:
                return(UniformImpl.Parse(reader, wordCount - 1));

            case Enumerant.Output:
                return(OutputImpl.Parse(reader, wordCount - 1));

            case Enumerant.Workgroup:
                return(WorkgroupImpl.Parse(reader, wordCount - 1));

            case Enumerant.CrossWorkgroup:
                return(CrossWorkgroupImpl.Parse(reader, wordCount - 1));

            case Enumerant.Private:
                return(PrivateImpl.Parse(reader, wordCount - 1));

            case Enumerant.Function:
                return(FunctionImpl.Parse(reader, wordCount - 1));

            case Enumerant.Generic:
                return(GenericImpl.Parse(reader, wordCount - 1));

            case Enumerant.PushConstant:
                return(PushConstantImpl.Parse(reader, wordCount - 1));

            case Enumerant.AtomicCounter:
                return(AtomicCounterImpl.Parse(reader, wordCount - 1));

            case Enumerant.Image:
                return(ImageImpl.Parse(reader, wordCount - 1));

            case Enumerant.StorageBuffer:
                return(StorageBufferImpl.Parse(reader, wordCount - 1));

            case Enumerant.CallableDataNV:
                return(CallableDataNVImpl.Parse(reader, wordCount - 1));

            //CallableDataKHR has the same id as another value in enum.
            //case Enumerant.CallableDataKHR :
            //    return CallableDataKHR.Parse(reader, wordCount - 1);
            case Enumerant.IncomingCallableDataNV:
                return(IncomingCallableDataNVImpl.Parse(reader, wordCount - 1));

            //IncomingCallableDataKHR has the same id as another value in enum.
            //case Enumerant.IncomingCallableDataKHR :
            //    return IncomingCallableDataKHR.Parse(reader, wordCount - 1);
            case Enumerant.RayPayloadNV:
                return(RayPayloadNVImpl.Parse(reader, wordCount - 1));

            //RayPayloadKHR has the same id as another value in enum.
            //case Enumerant.RayPayloadKHR :
            //    return RayPayloadKHR.Parse(reader, wordCount - 1);
            case Enumerant.HitAttributeNV:
                return(HitAttributeNVImpl.Parse(reader, wordCount - 1));

            //HitAttributeKHR has the same id as another value in enum.
            //case Enumerant.HitAttributeKHR :
            //    return HitAttributeKHR.Parse(reader, wordCount - 1);
            case Enumerant.IncomingRayPayloadNV:
                return(IncomingRayPayloadNVImpl.Parse(reader, wordCount - 1));

            //IncomingRayPayloadKHR has the same id as another value in enum.
            //case Enumerant.IncomingRayPayloadKHR :
            //    return IncomingRayPayloadKHR.Parse(reader, wordCount - 1);
            case Enumerant.ShaderRecordBufferNV:
                return(ShaderRecordBufferNVImpl.Parse(reader, wordCount - 1));

            //ShaderRecordBufferKHR has the same id as another value in enum.
            //case Enumerant.ShaderRecordBufferKHR :
            //    return ShaderRecordBufferKHR.Parse(reader, wordCount - 1);
            case Enumerant.PhysicalStorageBuffer:
                return(PhysicalStorageBufferImpl.Parse(reader, wordCount - 1));

            //PhysicalStorageBufferEXT has the same id as another value in enum.
            //case Enumerant.PhysicalStorageBufferEXT :
            //    return PhysicalStorageBufferEXT.Parse(reader, wordCount - 1);
            default:
                throw new IndexOutOfRangeException("Unknown StorageClass " + id);
            }
        }
 private static void SetImageValues(QCARManagerImpl.ImageHeaderData imageHeader, ImageImpl image)
 {
     image.Width = imageHeader.width;
     image.Height = imageHeader.height;
     image.Stride = imageHeader.stride;
     image.BufferWidth = imageHeader.bufferWidth;
     image.BufferHeight = imageHeader.bufferHeight;
     image.PixelFormat = (Image.PIXEL_FORMAT)imageHeader.format;
 }
    private static void AllocateImage(ImageImpl image)
    {
        image.Pixels = new byte[QCARWrapper.Instance.QcarGetBufferSize(image.BufferWidth,
                                                               image.BufferHeight,
                                                               (int)image.PixelFormat)];

        Marshal.FreeHGlobal(image.UnmanagedData);

        image.UnmanagedData = Marshal.AllocHGlobal(QCARWrapper.Instance.QcarGetBufferSize(image.BufferWidth,
                                                                                          image.BufferHeight,
                                                                                          (int)image.PixelFormat));
    }