RetroArch
slang_process.h
Go to the documentation of this file.
1 /* RetroArch - A frontend fror libretro.
2  * Copyright (C) 2014-2018 - Ali Bouhlel
3  *
4  * RetroArch is free software: you can redistribute it and/or modify it under the terms
5  * of the GNU General Public License as published by the Free Software Found-
6  * ation, either version 3 of the License, or (at your option) any later version.
7  *
8  * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
9  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
10  * PURPOSE. See the GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License along with RetroArch.
13  * If not, see <http://www.gnu.org/licenses/>.
14  */
15 
16 #ifndef __GLSLANG_PROCESS_H__
17 #define __GLSLANG_PROCESS_H__
18 
19 #include <stdint.h>
20 #include <boolean.h>
21 #include <retro_common_api.h>
22 
23 #include "../video_shader_parse.h"
24 #include "slang_reflection.h"
25 #include "glslang_util.h"
26 
27 typedef struct
28 {
29  void* ptr;
30  size_t stride;
31 } data_map_t;
32 
33 typedef struct
34 {
35  void* image;
36  size_t image_stride;
37  void* size;
38  size_t size_stride;
40 
41 typedef struct
42 {
44  void* uniforms[SLANG_NUM_BASE_SEMANTICS];
46 
47 typedef struct
48 {
49  void* data;
50  unsigned size;
51  unsigned offset;
52  char id[64];
54 
55 typedef struct
56 {
57  void* texture_data;
58  enum gfx_wrap_type wrap;
59  unsigned filter;
60  unsigned stage_mask;
61  unsigned binding;
62  char id[64];
64 
65 typedef struct
66 {
67  unsigned stage_mask;
68  unsigned binding;
69  unsigned size;
73 
74 typedef struct
75 {
81 
82 #define SLANG_STAGE_VERTEX_MASK (1 << 0)
83 #define SLANG_STAGE_FRAGMENT_MASK (1 << 1)
84 
86 
87 bool slang_process(
88  struct video_shader* shader_info,
89  unsigned pass_number,
90  enum rarch_shader_type dst_type,
91  unsigned version,
92  const semantics_map_t* semantics_map,
94 
96 
97 #endif
size_t image_stride
Definition: slang_process.h:36
unsigned size
Definition: slang_process.h:50
void * ptr
Definition: slang_process.h:29
unsigned stage_mask
Definition: slang_process.h:60
unsigned filter
Definition: slang_process.h:59
#define RETRO_BEGIN_DECLS
Definition: retro_common_api.h:41
glslang_format format
Definition: slang_process.h:79
Definition: slang_reflection.h:66
void * texture_data
Definition: slang_process.h:57
unsigned binding
Definition: slang_process.h:61
struct passwd out
Definition: missing_libc_functions.c:51
glslang_format
Definition: glslang_util.h:22
unsigned binding
Definition: slang_process.h:68
int uniform_count
Definition: slang_process.h:70
void * image
Definition: slang_process.h:35
Definition: video_shader_parse.h:143
RETRO_BEGIN_DECLS bool slang_process(struct video_shader *shader_info, unsigned pass_number, enum rarch_shader_type dst_type, unsigned version, const semantics_map_t *semantics_map, pass_semantics_t *out)
Definition: slang_process.cpp:346
Definition: slang_process.h:41
rarch_shader_type
Definition: video_shader_parse.h:50
Definition: slang_reflection.h:52
version
Definition: setup.py:6
size_t stride
Definition: slang_process.h:30
#define RETRO_END_DECLS
Definition: retro_common_api.h:42
texture_sem_t * textures
Definition: slang_process.h:77
Definition: slang_reflection.h:85
Definition: slang_process.h:55
Definition: slang_process.h:33
unsigned size
Definition: slang_process.h:69
unsigned offset
Definition: slang_process.h:51
size_t size_stride
Definition: slang_process.h:38
const GLuint * textures
Definition: glext.h:9001
int texture_count
Definition: slang_process.h:76
void * size
Definition: slang_process.h:37
Definition: slang_process.h:74
Definition: slang_process.h:47
gfx_wrap_type
Definition: video_shader_parse.h:75
Definition: slang_process.h:27
unsigned stage_mask
Definition: slang_process.h:67
void * data
Definition: slang_process.h:49
Definition: slang_process.h:65
uniform_sem_t * uniforms
Definition: slang_process.h:71