updae code of codecheck

Signed-off-by: tyBrave <tianyong13@huawei.com>
This commit is contained in:
tyBrave 2023-02-03 10:48:56 +08:00
parent 91f022516f
commit 57d773e582
5 changed files with 185 additions and 139 deletions

View File

@ -22,6 +22,41 @@
#ifndef GPU_ImageETS_constant_shape_H
#define GPU_ImageETS_constant_shape_H
const int UNIFORM_TYPE_2FV_SIZE = 10;
const int UNIFORM_TYPE_FV = 1;
const int UNIFORM_TYPE_2FV = 2;
const int UNIFORM_TYPE_3FV = 3;
const int UNIFORM_TYPE_4FV = 4;
const int UNIFORM_TYPE_2F = 21;
const int DEFAULT_ZERO = 0;
const int DEFAULT_ONE = 1;
const int DEFAULT_TWO = 2;
const int DEFAULT_THREE = 3;
const int DEFAULT_FOUR = 4;
const float DEFAULT_ONE_HALF = 1.5;
const int UNIFORM_TYPE_ZERO = 0;
const int UNIFORM_TYPE_ONE = 1;
const int UNIFORM_TYPE_THREE = 3;
const int UNIFORM_TYPE_FOUR = 4;
const int SHADER_TYPE_BRIGHT = 0;
const int SHADER_TYPE_CONTRAST = 1;
const int SHADER_TYPE_INVERT = 2;
const int SHADER_TYPE_KUWAHARA = 4;
const int SHADER_TYPE_PIXELATION = 3;
const int SHADER_TYPE_SKETCH = 6;
const int SHADER_TYPE_SWIRL = 7;
const int SHADER_TYPE_TOON = 8;
const int SHADER_TYPE_VIGNETTE = 9;
const int SHADER_TYPE_SEPIA = 5;
const int SHADER_TYPE_GRAYSCALE = 10;
const int SHADER_TYPE_BLUR = 12;
const char vShaderStr[] =
"#version 300 es \n"
"layout(location = 0) in vec4 a_position; \n"

View File

@ -36,10 +36,10 @@
#include "../util/NapiUtil.h"
#define PARAM_TYPE_SHADER_INDEX 300
const int PARAM_TYPE_SHADER_INDEX = 300;
#define VERTEX_POS_LOC 0
#define TEXTURE_POS_LOC 1
const int VERTEX_POS_LOC = 0;
const int TEXTURE_POS_LOC = 1;
const int32_t STR_DEFAULT_SIZE = 1024;
EGLRender *EGLRender::sInstance = nullptr;
@ -162,14 +162,14 @@ napi_value EGLRender::GetPixelMapOfSurface(napi_env env, napi_callback_info info
return nullptr;
}
uint8_t* pixels = (uint8_t*) malloc(surfaceWidth * surfaceHeight * 4);
uint8_t* pixels = (uint8_t*) malloc(surfaceWidth * surfaceHeight * DEFAULT_FOUR);
glPixelStorei(GL_PACK_ALIGNMENT, 1);
glReadPixels(x, y, surfaceWidth, surfaceHeight, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
NativeImageUtil::flip(&pixels, surfaceWidth, surfaceHeight);
napi_value array;
int byte_length = surfaceWidth * surfaceHeight * 4;
int byte_length = surfaceWidth * surfaceHeight * DEFAULT_FOUR;
if (!NativeImageUtil::CreateArrayBuffer(env, pixels, byte_length, &array)) {
LOGI("gl--> GetPixelMapOfSurface error");
}
@ -217,12 +217,12 @@ napi_value EGLRender::setTypeArrayOfFloat(napi_env env, napi_callback_info info)
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
std::string locationContent;
NapiUtil::JsValueToString(env, args[0], 1024, locationContent);
NapiUtil::JsValueToString(env, args[0], STR_DEFAULT_SIZE, locationContent);
char* location = (char*)locationContent.c_str();
std::string content;
NapiUtil::JsValueToString(env, args[1], 1024, content);
NapiUtil::JsValueToString(env, args[1], STR_DEFAULT_SIZE, content);
char* key = (char*)content.c_str();
@ -240,15 +240,15 @@ napi_value EGLRender::setTypeArrayOfFloat(napi_env env, napi_callback_info info)
int uniformType;
if (strcmp(key, "glUniform2fv") == 0) {
uniformType = 2;
uniformType = UNIFORM_TYPE_2FV;
}else if (strcmp(key, "glUniform3fv") == 0) {
uniformType = 3;
uniformType = UNIFORM_TYPE_3FV;
}else if (strcmp(key, "glUniform4fv") == 0) {
uniformType = 4;
uniformType = UNIFORM_TYPE_4FV;
}else if (strcmp(key, "glUniform1fv") == 0) {
uniformType = 1;
uniformType = UNIFORM_TYPE_FV;
}else if (strcmp(key, "glUniform2f") == 0) {
uniformType = 21;
uniformType = UNIFORM_TYPE_2F;
}
EGLRender::GetInstance() -> GlUniformArray(location, value, uniformType);
@ -261,7 +261,7 @@ napi_value EGLRender::setTypeArrayOfMatrix3f(napi_env env, napi_callback_info in
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
std::string locationContent;
NapiUtil::JsValueToString(env, args[0], 1024, locationContent);
NapiUtil::JsValueToString(env, args[0], STR_DEFAULT_SIZE, locationContent);
char* location = (char*)locationContent.c_str();
@ -276,7 +276,7 @@ napi_value EGLRender::setTypeArrayOfMatrix3f(napi_env env, napi_callback_info in
float* value = reinterpret_cast<float *>(buffer);
EGLRender::GetInstance() -> GlUniformMatrix(location, value, 3);
EGLRender::GetInstance() -> GlUniformMatrix(location, value, UNIFORM_TYPE_THREE);
return nullptr;
}
@ -287,7 +287,7 @@ napi_value EGLRender::setTypeArrayOfMatrix4f(napi_env env, napi_callback_info in
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
std::string locationContent;
NapiUtil::JsValueToString(env, args[0], 1024, locationContent);
NapiUtil::JsValueToString(env, args[0], STR_DEFAULT_SIZE, locationContent);
char* location = (char*)locationContent.c_str();
@ -302,7 +302,7 @@ napi_value EGLRender::setTypeArrayOfMatrix4f(napi_env env, napi_callback_info in
float* value = reinterpret_cast<float *>(buffer);
EGLRender::GetInstance() -> GlUniformMatrix(location, value, 4);
EGLRender::GetInstance() -> GlUniformMatrix(location, value, UNIFORM_TYPE_FOUR);
return nullptr;
}
@ -313,13 +313,13 @@ napi_value EGLRender::RenderGlUniform1i(napi_env env, napi_callback_info info) {
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
std::string content;
NapiUtil::JsValueToString(env, args[0], 1024, content);
NapiUtil::JsValueToString(env, args[0], STR_DEFAULT_SIZE, content);
uint32_t value;
napi_status status = napi_get_value_uint32(env, args[1], &value);
if (status != napi_ok) {
return nullptr;
}
EGLRender::GetInstance() -> GlUniform((char*)content.c_str(), value, 0);
EGLRender::GetInstance() -> GlUniform((char*)content.c_str(), value, UNIFORM_TYPE_ZERO);
return nullptr;
}
@ -330,13 +330,13 @@ napi_value EGLRender::RenderGlUniform1f(napi_env env, napi_callback_info info) {
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
std::string content;
NapiUtil::JsValueToString(env, args[0], 1024, content);
NapiUtil::JsValueToString(env, args[0], STR_DEFAULT_SIZE, content);
double value;
napi_status status = napi_get_value_double(env, args[1], &value);
if (status != napi_ok) {
return nullptr;
}
EGLRender::GetInstance() -> GlUniform((char*)content.c_str(), value, 1);
EGLRender::GetInstance() -> GlUniform((char*)content.c_str(), value, UNIFORM_TYPE_ONE);
return nullptr;
}
@ -347,7 +347,7 @@ napi_value EGLRender::RenderGlUniform2fv(napi_env env, napi_callback_info info)
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
std::string content;
NapiUtil::JsValueToString(env, args[0], 1024, content);
NapiUtil::JsValueToString(env, args[0], STR_DEFAULT_SIZE, content);
double value;
napi_status status = napi_get_value_double(env, args[1], &value);
@ -363,7 +363,7 @@ napi_value EGLRender::RenderGlUniform2fv(napi_env env, napi_callback_info info)
float vce2[2];
vce2[0] = value;
vce2[1] = value2;
EGLRender::GetInstance() -> GlUniformArray((char*)content.c_str(), vce2, 10);
EGLRender::GetInstance() -> GlUniformArray((char*)content.c_str(), vce2, UNIFORM_TYPE_2FV_SIZE);
return nullptr;
}
@ -418,33 +418,33 @@ void EGLRender::Init() {
}
// Generate VBO Ids and load the VBOs width data
glGenBuffers(3, m_VboIds);
glBindBuffer(GL_ARRAY_BUFFER, m_VboIds[0]);
glGenBuffers(DEFAULT_THREE, m_VboIds);
glBindBuffer(GL_ARRAY_BUFFER, m_VboIds[DEFAULT_ZERO]);
glBufferData(GL_ARRAY_BUFFER, sizeof(vVertices), vVertices, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, m_VboIds[1]);
glBindBuffer(GL_ARRAY_BUFFER, m_VboIds[DEFAULT_ONE]);
glBufferData(GL_ARRAY_BUFFER, sizeof(vFboTexCoors), vTexCoors, GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_VboIds[2]);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_VboIds[DEFAULT_TWO]);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
// Generate VAO Ids
glGenVertexArrays(1, m_VaoIds);
glGenVertexArrays(DEFAULT_ONE, m_VaoIds);
// FBO off screen rendering VAO
glBindVertexArray(m_VaoIds[0]);
glBindVertexArray(m_VaoIds[DEFAULT_ZERO]);
glBindBuffer(GL_ARRAY_BUFFER, m_VboIds[0]);
glBindBuffer(GL_ARRAY_BUFFER, m_VboIds[DEFAULT_ZERO]);
glEnableVertexAttribArray(VERTEX_POS_LOC);
glVertexAttribPointer(VERTEX_POS_LOC, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(GLfloat), (const void *)0);
glVertexAttribPointer(VERTEX_POS_LOC, DEFAULT_THREE, GL_FLOAT, GL_FALSE, DEFAULT_THREE * sizeof(GLfloat), (const void *)DEFAULT_ZERO);
glBindBuffer(GL_ARRAY_BUFFER,GL_NONE);
glBindBuffer(GL_ARRAY_BUFFER, m_VboIds[1]);
glBindBuffer(GL_ARRAY_BUFFER, m_VboIds[DEFAULT_ONE]);
glEnableVertexAttribArray(TEXTURE_POS_LOC);
glVertexAttribPointer(TEXTURE_POS_LOC, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(GLfloat), (const void *)0);
glVertexAttribPointer(TEXTURE_POS_LOC, DEFAULT_TWO, GL_FLOAT, GL_FALSE, DEFAULT_TWO * sizeof(GLfloat), (const void *)DEFAULT_ZERO);
glBindBuffer(GL_ARRAY_BUFFER,GL_NONE);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_VboIds[2]);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_VboIds[DEFAULT_TWO]);
glBindVertexArray(GL_NONE);
}
@ -514,6 +514,9 @@ int EGLRender::CreateGlEnv() {
case EGL_BAD_MATCH:
LOGI("gl-->::CreateGlesEnv Check window and EGLConfig attributes");
break;
default:
LOGI("gl-->::CreateGlesEnv happen default error");
break;
}
}
@ -559,7 +562,7 @@ void EGLRender::SetImageData(uint8_t *pData, int width, int height) {
m_RenderImage.height = height;
m_RenderImage.format = IMAGE_FORMAT_RGBA;
NativeImageUtil::AllocNativeImage(&m_RenderImage);
memcpy(m_RenderImage.ppPlane[0], pData, width * height *4);
memcpy(m_RenderImage.ppPlane[0], pData, width * height * DEFAULT_FOUR);
glBindTexture(GL_TEXTURE_2D, m_ImageTextureId);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_RenderImage.width, m_RenderImage.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_RenderImage.ppPlane[0]);
@ -601,68 +604,71 @@ void EGLRender::SetIntParams(int paramType, int param) {
const char* fShader[1];
switch(param)
{
case 4:
case SHADER_TYPE_KUWAHARA:
{
fShader[0] = fShaderStr3;
break;
}
case 7:
case SHADER_TYPE_SWIRL:
{
fShader[0] = swirlFShaderStr;
break;
}
case 0:
case SHADER_TYPE_BRIGHT:
{
fShader[0] = brightFShaderStr;
break;
}
case 1:
case SHADER_TYPE_CONTRAST:
{
fShader[0] = contrastFShaderStr;
break;
}
case 2:
case SHADER_TYPE_INVERT:
{
fShader[0] = invertFShaderStr;
break;
}
case 3:
case SHADER_TYPE_PIXELATION:
{
fShader[0] = pixelFShaderStr;
break;
}
case 5:
case SHADER_TYPE_SEPIA:
{
fShader[0] = colorMatrixFShaderStr;
break;
}
case 6:
case SHADER_TYPE_SKETCH:
{
fShader[0] = sketchShaderStr;
vShader[0] = v3x3ShaderStr;
break;
}
case 8:
case SHADER_TYPE_TOON:
{
fShader[0] = toonFShaderStr;
vShader[0] = v3x3ShaderStr;
break;
}
case 9:
case SHADER_TYPE_VIGNETTE:
{
fShader[0] = vignetteFShaderStr;
break;
}
case 10:
case SHADER_TYPE_GRAYSCALE:
{
fShader[0] = grayScaleShaderStr;
break;
}
case 12:
case SHADER_TYPE_BLUR:
{
fShader[0] = blurShaderStr;
break;
}
default:
vShader[0] = vShaderStr;
break;
}
m_ProgramObj = GLUtils::CreateProgram(vShader[0], fShader[0], m_VertexShader,
@ -708,56 +714,62 @@ void EGLRender::UseProgram() {
}
}
void EGLRender::GlUniform(char* strLocation, float value, int unType) {
GLint location = glGetUniformLocation(m_ProgramObj, strLocation);
void EGLRender::GlUniform(char* location, float value, int unType) {
GLint ll = glGetUniformLocation(m_ProgramObj, location);
switch(unType)
{
case 0:
glUniform1i(location, (int)value);
case UNIFORM_TYPE_ZERO:
glUniform1i(ll, (int)value);
break;
case 1:
glUniform1f(location, value);
case UNIFORM_TYPE_ONE:
glUniform1f(ll, value);
break;
default:
break;
}
}
void EGLRender::GlUniformArray(char* strLocation, float* value, int unType) {
GLint location = glGetUniformLocation(m_ProgramObj, strLocation);
void EGLRender::GlUniformArray(char* location, float* value, int unType) {
GLint ll = glGetUniformLocation(m_ProgramObj, location);
switch(unType)
{
case 10:
case UNIFORM_TYPE_2FV_SIZE:
GLfloat vec2[2];
vec2[0] = value[0] * m_RenderImage.width;
vec2[1] = value[1] * m_RenderImage.height;
glUniform2fv(location, 1, vec2);
glUniform2fv(ll, 1, vec2);
break;
case 21:
glUniform2f(location, value[0], value[1]);
case UNIFORM_TYPE_2F:
glUniform2f(ll, value[0], value[1]);
break;
case 1:
glUniform1fv(location, 1, value);
case UNIFORM_TYPE_FV:
glUniform1fv(ll, 1, value);
break;
case 2:
glUniform2fv(location, 1, value);
case UNIFORM_TYPE_2FV:
glUniform2fv(ll, 1, value);
break;
case 3:
glUniform3fv(location, 1, value);
case UNIFORM_TYPE_3FV:
glUniform3fv(ll, 1, value);
break;
case 4:
glUniform4fv(location, 1, value);
case UNIFORM_TYPE_4FV:
glUniform4fv(ll, 1, value);
break;
default:
break;
}
}
void EGLRender::GlUniformMatrix(char* strLocation, float* value, int unType) {
GLint location = glGetUniformLocation(m_ProgramObj, strLocation);
void EGLRender::GlUniformMatrix(char* location, float* value, int unType) {
GLint ll = glGetUniformLocation(m_ProgramObj, location);
switch(unType)
{
case 3:
glUniformMatrix3fv(location, 1, false,value);
case UNIFORM_TYPE_THREE:
glUniformMatrix3fv(ll, 1, false,value);
break;
case 4:
glUniformMatrix4fv(location, 1, false, value);
case UNIFORM_TYPE_FOUR:
glUniformMatrix4fv(ll, 1, false, value);
break;
default:
break;
}
}
@ -771,28 +783,28 @@ void EGLRender::UnInit() {
if(m_ImageTextureId)
{
glDeleteTextures(1, &m_ImageTextureId);
glDeleteTextures(DEFAULT_ONE, &m_ImageTextureId);
m_ImageTextureId = GL_NONE;
}
if (m_FboTextureId)
{
glDeleteTextures(1, &m_FboTextureId);
glDeleteTextures(DEFAULT_ONE, &m_FboTextureId);
m_FboTextureId = GL_NONE;
}
if (m_VboIds[0])
if (m_VboIds[DEFAULT_ZERO])
{
glDeleteBuffers(3, m_VboIds);
m_VboIds[0] = GL_NONE;
m_VboIds[1] = GL_NONE;
m_VboIds[2] = GL_NONE;
glDeleteBuffers(DEFAULT_THREE, m_VboIds);
m_VboIds[DEFAULT_ZERO] = GL_NONE;
m_VboIds[DEFAULT_ONE] = GL_NONE;
m_VboIds[DEFAULT_TWO] = GL_NONE;
}
if (m_VaoIds[0])
if (m_VaoIds[DEFAULT_ZERO])
{
glDeleteVertexArrays(1, m_VaoIds);
m_VaoIds[0] = GL_NONE;
glDeleteVertexArrays(DEFAULT_ONE, m_VaoIds);
m_VaoIds[DEFAULT_ZERO] = GL_NONE;
}
if (m_FboId)

View File

@ -28,7 +28,7 @@
#include <stdint.h>
#include "NativeImage.h"
#define EGL_FEATURE_NUM 7
const int EGL_FEATURE_NUM = 7;
class EGLRender {

View File

@ -30,6 +30,7 @@
#include <unistd.h>
#include "DebugLog.h"
#include <string.h>
#include "constant/constant_shape.h"
#define IMAGE_FORMAT_RGBA 0x01
#define IMAGE_FORMAT_NV21 0x02
@ -55,16 +56,16 @@ struct NativeImage
int width;
int height;
int format;
uint8_t *ppPlane[3];
uint8_t *ppPlane[DEFAULT_THREE];
NativeImage()
{
width = 0;
height = 0;
format = 0;
ppPlane[0] = nullptr;
ppPlane[1] = nullptr;
ppPlane[2] = nullptr;
width = DEFAULT_ZERO;
height = DEFAULT_ZERO;
format = DEFAULT_ZERO;
ppPlane[DEFAULT_ZERO] = nullptr;
ppPlane[DEFAULT_ONE] = nullptr;
ppPlane[DEFAULT_TWO] = nullptr;
}
};
@ -73,49 +74,49 @@ class NativeImageUtil
public:
static void AllocNativeImage(NativeImage *pImage)
{
if (pImage ->height ==0 || pImage ->width == 0) return;
if (pImage ->height == DEFAULT_ZERO || pImage ->width == DEFAULT_ZERO) return;
switch(pImage -> format)
{
case IMAGE_FORMAT_RGBA:
{
pImage->ppPlane[0] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * 4));
pImage->ppPlane[DEFAULT_ZERO] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * DEFAULT_FOUR));
}
break;
break;
case IMAGE_FORMAT_YUYV:
{
pImage->ppPlane[0] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * 2));
pImage->ppPlane[DEFAULT_ZERO] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * DEFAULT_TWO));
}
break;
break;
case IMAGE_FORMAT_NV12:
case IMAGE_FORMAT_NV21:
{
pImage->ppPlane[0] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * 1.5));
pImage->ppPlane[1] = pImage->ppPlane[0] + pImage->width * pImage->height;
pImage->ppPlane[DEFAULT_ZERO] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * DEFAULT_ONE_HALF));
pImage->ppPlane[DEFAULT_ONE] = pImage->ppPlane[DEFAULT_ZERO] + pImage->width * pImage->height;
}
break;
break;
case IMAGE_FORMAT_I420:
{
pImage->ppPlane[0] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * 1.5));
pImage->ppPlane[1] = pImage->ppPlane[0] + pImage->width * pImage->height;
pImage->ppPlane[2] = pImage->ppPlane[1] + pImage->width * (pImage->height >> 2);
pImage->ppPlane[DEFAULT_ZERO] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * DEFAULT_ONE_HALF));
pImage->ppPlane[DEFAULT_ONE] = pImage->ppPlane[DEFAULT_ZERO] + pImage->width * pImage->height;
pImage->ppPlane[DEFAULT_TWO] = pImage->ppPlane[DEFAULT_ONE] + pImage->width * (pImage->height >> DEFAULT_TWO);
}
break;
break;
case IMAGE_FORMAT_GRAY:
{
pImage->ppPlane[0] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height));
pImage->ppPlane[DEFAULT_ZERO] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height));
}
break;
break;
case IMAGE_FORMAT_I444:
{
pImage->ppPlane[0] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * 3));
pImage->ppPlane[DEFAULT_ZERO] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * DEFAULT_THREE));
}
break;
break;
case IMAGE_FORMAT_P010:
{
pImage->ppPlane[0] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * 3));
pImage->ppPlane[1] = pImage->ppPlane[0] + pImage->width * pImage->height * 2;
pImage->ppPlane[DEFAULT_ZERO] = static_cast<uint8_t *>(malloc(pImage->width * pImage ->height * DEFAULT_THREE));
pImage->ppPlane[DEFAULT_ONE] = pImage->ppPlane[DEFAULT_ZERO] + pImage->width * pImage->height * DEFAULT_TWO;
}
break;
break;
default:
break;
}
@ -123,22 +124,20 @@ class NativeImageUtil
static void FreeNativeImage(NativeImage *pImage)
{
if (pImage == nullptr || pImage->ppPlane[0] == nullptr) return;
free(pImage->ppPlane[0]);
pImage->ppPlane[0] = nullptr;
pImage->ppPlane[1] = nullptr;
pImage->ppPlane[2] = nullptr;
if (pImage == nullptr || pImage->ppPlane[DEFAULT_ZERO] == nullptr) return;
free(pImage->ppPlane[DEFAULT_ZERO]);
pImage->ppPlane[DEFAULT_ZERO] = nullptr;
pImage->ppPlane[DEFAULT_ONE] = nullptr;
pImage->ppPlane[DEFAULT_TWO] = nullptr;
}
static bool CreateArrayBuffer(napi_env env, void* src, size_t srcLen, napi_value *res)
{
if (src == nullptr || srcLen == 0)
{
if (src == nullptr || srcLen == DEFAULT_ZERO) {
return false;
}
void *nativePtr = nullptr;
if (napi_create_arraybuffer(env, srcLen, &nativePtr, res) != napi_ok || nativePtr == nullptr)
{
if (napi_create_arraybuffer(env, srcLen, &nativePtr, res) != napi_ok || nativePtr == nullptr) {
return false;
}
memcpy(nativePtr, src, srcLen);
@ -147,16 +146,16 @@ class NativeImageUtil
static void flip(uint8_t** buf, int width, int height)
{
int totalLength = width * height * 4;
int oneLineLength = width * 4;
int totalLength = width * height * DEFAULT_FOUR;
int oneLineLength = width * DEFAULT_FOUR;
uint8_t* tmp = (uint8_t*)malloc(totalLength);
memcpy(tmp, *buf, totalLength);
memset(*buf, 0, sizeof(uint8_t)*totalLength);
for(int i = 0; i < height; i++) {
memset(*buf, DEFAULT_ZERO, sizeof(uint8_t)*totalLength);
for (int i = 0; i < height; i++) {
memcpy(*buf + oneLineLength * i, tmp + totalLength - oneLineLength * (i+1), oneLineLength);
}
free(tmp);
}
};
#endif //GPU_ImageETS_NativeImage_H
#endif // GPU_ImageETS_NativeImage_H

View File

@ -1,19 +1,19 @@
{
"license": "ISC",
"devDependencies": {},
"name": "imageknife",
"ohos": {
"org": "huawei",
"directoryLevel": "project",
"buildTool": "hvigor"
"license":"ISC",
"devDependencies":{},
"name":"imageknife",
"ohos":{
"org":"huawei",
"directoryLevel":"project",
"buildTool":"hvigor"
},
"description": "example description",
"repository": {},
"version": "1.0.0",
"dependencies": {
"@ohos/hypium": "1.0.3",
"@ohos/hvigor-ohos-plugin": "1.3.1",
"hypium": "^1.0.0",
"@ohos/hvigor": "1.3.1"
"description":"example description",
"repository":{},
"version":"1.0.0",
"dependencies":{
"@ohos/hypium":"1.0.3",
"@ohos/hvigor-ohos-plugin":"1.3.1",
"hypium":"^1.0.0",
"@ohos/hvigor":"1.3.1"
}
}
}