You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.6 KiB

7 months ago
/**
********************************************************************************
* Copyright (C) 2024 NEXTCHIP Inc. All rights reserved.
* This software is the confidential and proprietary information of
* NEXTCHIP, Inc. ("Confidential Information"). You shall not disclose such
* Confidential Information and shall use it only in accordance with
* the terms of the license agreement you entered into with NEXTCHIP.
********************************************************************************
********************************************************************************
* @file : nc_opengl_interface.h
*
* @brief : nc_opengl_interface header
*
* @author : Software Development Team. NextChip Inc.
*
* @date : 2024.08.09.
*
* @version : 1.0.0
********************************************************************************
* @note
*
********************************************************************************
*/
#ifndef __NC_OPENGL_INTERFACE_H__
#define __NC_OPENGL_INTERFACE_H__
#include <stdio.h>
#include <GLES2/gl2.h>
#include <EGL/egl.h>
#include "wayland_egl.h"
#include "nc_opengl_init.h"
#define VIEWPORT_WIDTH (1920)
#define VIEWPORT_HEIGHT (1080)
struct gl_npu_program
{
GLuint program;
GLuint pos_handle;
GLuint texcoord_handle;
GLuint color_handle;
GLuint drawing_type_handle;
GLuint viewport_size_handle;
GLuint texture_handle;
GLuint colors_array_handle;
};
// Draw type enumeration
enum {
DRAW_NPU_TYPE_SOLID,
DRAW_NPU_TYPE_DASHED,
DRAW_NPU_TYPE_SEG,
DRAW_NPU_NUM_TYPE
};
void nc_opengl_pixel_to_ndc(float pixel_x, float pixel_y, float* ndc_x, float* ndc_y);
void nc_opengl_create_rect_vertex(float pixel_x, float pixel_y, float pixel_width, float pixel_height, float vertexCoords[12]);
void nc_opengl_create_line_vertex(float st_x, float st_y, float end_x, float end_y, float *vertexCoords);
void nc_opengl_draw_rectangle(float x, float y, float w, float h, float color[4], struct gl_npu_program g_npu_prog);
void nc_opengl_draw_segmentation(GLuint texture, float** colors, int class_cnt, struct gl_npu_program g_npu_prog);
void nc_opengl_draw_line(float st_x, float st_y, float end_x, float end_y, int lane_class, float color[4], struct gl_npu_program g_npu_prog);
#ifdef USE_UFLD_NETWORK_DEBUGGING
void nc_opengl_draw_debugging_grid_line(float st_x, float st_y, float end_x, float end_y, int lane_class, float color[4], struct gl_npu_program g_npu_prog);
#endif
void nc_opengl_init_npu_shader(struct gl_npu_program *npu_prog);
void nc_opengl_draw_texture(GLint texture, window *window);
void nc_opengl_init_video_shader(window *window, int use_yuv_shader);
#endif // __NC_OPENGL_INTERFACE_H__