19762338dSopenharmony_ci/*
29762338dSopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
39762338dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
49762338dSopenharmony_ci * you may not use this file except in compliance with the License.
59762338dSopenharmony_ci * You may obtain a copy of the License at
69762338dSopenharmony_ci *
79762338dSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
89762338dSopenharmony_ci *
99762338dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
109762338dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
119762338dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
129762338dSopenharmony_ci * See the License for the specific language governing permissions and
139762338dSopenharmony_ci * limitations under the License.
149762338dSopenharmony_ci */
159762338dSopenharmony_ci
169762338dSopenharmony_ci#ifndef DISPLAY_TEST_UTILS_H
179762338dSopenharmony_ci#define DISPLAY_TEST_UTILS_H
189762338dSopenharmony_ci#include <vector>
199762338dSopenharmony_ci#include "display_test.h"
209762338dSopenharmony_ci#include "v1_0/include/idisplay_buffer.h"
219762338dSopenharmony_ci
229762338dSopenharmony_cinamespace OHOS {
239762338dSopenharmony_cinamespace HDI {
249762338dSopenharmony_cinamespace Display {
259762338dSopenharmony_cinamespace TEST {
269762338dSopenharmony_ciusing namespace OHOS::HDI::Display::Composer::V1_0;
279762338dSopenharmony_ci
289762338dSopenharmony_ciconst uint32_t DISPLAY_DEAULT_W = 480;
299762338dSopenharmony_ciconst uint32_t DISPLAY_DEAULT_H = 960;
309762338dSopenharmony_ciconst uint32_t RED = 0xff0000ff;
319762338dSopenharmony_ciconst uint32_t GREEN = 0x00ff00ff;
329762338dSopenharmony_ciconst uint32_t BLUE = 0x0000ffff;
339762338dSopenharmony_ciconst uint32_t TRANSPARENT = 0;
349762338dSopenharmony_ciconst uint32_t YELLOW = 0xffff29ff;
359762338dSopenharmony_ciconst uint32_t PINK = 0xffc0cbff;
369762338dSopenharmony_ciconst uint32_t PURPLE = 0x800080ff;
379762338dSopenharmony_ciconst uint32_t CYAN = 0x00ffffff;
389762338dSopenharmony_ci
399762338dSopenharmony_cistruct FRect {
409762338dSopenharmony_ci    float x = 0;
419762338dSopenharmony_ci    float y = 0;
429762338dSopenharmony_ci    float w = 0; // ratio
439762338dSopenharmony_ci    float h = 0; // ratio
449762338dSopenharmony_ci};
459762338dSopenharmony_ci
469762338dSopenharmony_cistruct BufferRatio {
479762338dSopenharmony_ci    float w;
489762338dSopenharmony_ci    float h;
499762338dSopenharmony_ci};
509762338dSopenharmony_ci
519762338dSopenharmony_cistruct Size {
529762338dSopenharmony_ci    uint32_t w;
539762338dSopenharmony_ci    uint32_t h;
549762338dSopenharmony_ci};
559762338dSopenharmony_ci
569762338dSopenharmony_cistruct LayerSettings {
579762338dSopenharmony_ci    IRect displayRect;
589762338dSopenharmony_ci    IRect displayCrop;
599762338dSopenharmony_ci    FRect rectRatio = { 0.0f };
609762338dSopenharmony_ci    uint32_t color;
619762338dSopenharmony_ci    uint32_t zorder = 0;
629762338dSopenharmony_ci    Size bufferSize = { 0 };
639762338dSopenharmony_ci    BufferRatio bufferRatio { 0 };
649762338dSopenharmony_ci    int32_t alpha = -1;
659762338dSopenharmony_ci    Composer::V1_0::CompositionType compositionType = Composer::V1_0::CompositionType::COMPOSITION_DEVICE;
669762338dSopenharmony_ci    BlendType blendType = BLEND_SRC;
679762338dSopenharmony_ci    TransformType rotate = ROTATE_NONE;
689762338dSopenharmony_ci};
699762338dSopenharmony_ci
709762338dSopenharmony_cistruct TestParemeter {
719762338dSopenharmony_ci    static TestParemeter& GetInstance()
729762338dSopenharmony_ci    {
739762338dSopenharmony_ci        static TestParemeter instance;
749762338dSopenharmony_ci        return instance;
759762338dSopenharmony_ci    }
769762338dSopenharmony_ci    int32_t mTestSleep = 0;
779762338dSopenharmony_ci};
789762338dSopenharmony_ci
799762338dSopenharmony_ciusing LayersSetting = std::vector<LayerSettings>;
809762338dSopenharmony_ci
819762338dSopenharmony_civoid SaveFile(const char* fileName, uint8_t* data, int size);
829762338dSopenharmony_civoid SetUint32(uint32_t& dst, uint32_t value);
839762338dSopenharmony_civoid SetPixel(const BufferHandle& handle, int x, int y, uint32_t color);
849762338dSopenharmony_civoid ClearColor(const BufferHandle& handle, uint32_t color);
859762338dSopenharmony_ciuint32_t GetPixelValue(const BufferHandle& handle, int x, int y);
869762338dSopenharmony_ciuint32_t CheckPixel(const BufferHandle& handle, int x, int y, uint32_t color);
879762338dSopenharmony_cistd::vector<IRect> SplitBuffer(const BufferHandle& handle, std::vector<uint32_t> &colors);
889762338dSopenharmony_ci} // OHOS
899762338dSopenharmony_ci} // HDI
909762338dSopenharmony_ci} // Display
919762338dSopenharmony_ci} // TEST
929762338dSopenharmony_ci
939762338dSopenharmony_ci#endif // HDI_TEST_RENDER_UTILS_H
94