Cleanup: GPU: Move Image based function to GPU_draw.h
This makes it less confusing what functions are for blender structures.
This commit is contained in:
@@ -72,6 +72,7 @@
|
||||
#include "DEG_depsgraph.h"
|
||||
#include "DEG_depsgraph_query.h"
|
||||
|
||||
#include "GPU_draw.h"
|
||||
#include "GPU_texture.h"
|
||||
|
||||
#ifdef WITH_OPENEXR
|
||||
|
||||
@@ -232,7 +232,7 @@ static void OVERLAY_image_free_movieclips_textures(OVERLAY_Data *data)
|
||||
LinkData *link;
|
||||
while ((link = BLI_pophead(&data->stl->pd->bg_movie_clips))) {
|
||||
MovieClip *clip = (MovieClip *)link->data;
|
||||
GPU_free_texture_movieclip(clip);
|
||||
GPU_free_movieclip(clip);
|
||||
MEM_freeN(link);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "DNA_mesh_types.h"
|
||||
#include "DNA_node_types.h"
|
||||
|
||||
#include "GPU_draw.h"
|
||||
#include "GPU_uniformbuffer.h"
|
||||
|
||||
#include "ED_uvedit.h"
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "DNA_scene_types.h"
|
||||
#include "DNA_world_types.h"
|
||||
|
||||
#include "GPU_draw.h"
|
||||
#include "GPU_framebuffer.h"
|
||||
#include "GPU_primitive.h"
|
||||
#include "GPU_shader.h"
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
#endif
|
||||
|
||||
#include "GPU_buffers.h"
|
||||
#include "GPU_draw.h"
|
||||
#include "GPU_material.h"
|
||||
|
||||
#include "intern/gpu_codegen.h"
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
#define __GPU_DRAW_H__
|
||||
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "DNA_image_types.h"
|
||||
#include "DNA_object_enums.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -32,38 +34,49 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
struct FluidModifierData;
|
||||
struct ImBuf;
|
||||
struct GPUTexture;
|
||||
struct Image;
|
||||
struct ImageUser;
|
||||
struct ImBuf;
|
||||
struct Main;
|
||||
struct MovieClip;
|
||||
struct MovieClipUser;
|
||||
|
||||
/* OpenGL drawing functions related to shading. */
|
||||
/* Texture creation from blender datablocks. */
|
||||
struct GPUTexture *GPU_texture_from_blender(struct Image *ima,
|
||||
struct ImageUser *iuser,
|
||||
struct ImBuf *ibuf,
|
||||
eGPUTextureTarget target);
|
||||
|
||||
/* Mipmap settings
|
||||
* - these will free textures on changes */
|
||||
struct GPUTexture *GPU_texture_from_movieclip(struct MovieClip *clip,
|
||||
struct MovieClipUser *cuser,
|
||||
eGPUTextureTarget target);
|
||||
|
||||
void GPU_paint_set_mipmap(struct Main *bmain, bool mipmap);
|
||||
|
||||
/* Image updates and free
|
||||
* - these deal with images bound as opengl textures */
|
||||
|
||||
void GPU_paint_update_image(
|
||||
struct Image *ima, struct ImageUser *iuser, int x, int y, int w, int h);
|
||||
void GPU_free_image(struct Image *ima);
|
||||
void GPU_free_images(struct Main *bmain);
|
||||
void GPU_free_images_anim(struct Main *bmain);
|
||||
void GPU_free_images_old(struct Main *bmain);
|
||||
|
||||
/* gpu_draw_smoke.c */
|
||||
void GPU_free_smoke(struct FluidModifierData *fmd);
|
||||
void GPU_free_smoke_velocity(struct FluidModifierData *fmd);
|
||||
/* Fluid simulation. */
|
||||
void GPU_create_smoke(struct FluidModifierData *fmd, int highres);
|
||||
void GPU_create_smoke_coba_field(struct FluidModifierData *fmd);
|
||||
void GPU_create_smoke_velocity(struct FluidModifierData *fmd);
|
||||
|
||||
/* Image updates and free. */
|
||||
void GPU_free_image(struct Image *ima);
|
||||
void GPU_free_movieclip(struct MovieClip *clip);
|
||||
void GPU_free_smoke(struct FluidModifierData *fmd);
|
||||
void GPU_free_smoke_velocity(struct FluidModifierData *fmd);
|
||||
|
||||
void GPU_free_images(struct Main *bmain);
|
||||
void GPU_free_images_anim(struct Main *bmain);
|
||||
void GPU_free_images_old(struct Main *bmain);
|
||||
|
||||
void GPU_paint_update_image(
|
||||
struct Image *ima, struct ImageUser *iuser, int x, int y, int w, int h);
|
||||
void GPU_paint_set_mipmap(struct Main *bmain, bool mipmap);
|
||||
|
||||
/* Delayed free of OpenGL buffers by main thread */
|
||||
void GPU_free_unused_buffers(void);
|
||||
|
||||
/* For internal use. */
|
||||
struct GPUTexture *GPU_texture_create_error(eGPUTextureTarget target);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#define __GPU_TEXTURE_H__
|
||||
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "GPU_state.h"
|
||||
|
||||
struct GPUVertBuf;
|
||||
@@ -38,14 +39,6 @@ struct PreviewImage;
|
||||
struct GPUFrameBuffer;
|
||||
typedef struct GPUTexture GPUTexture;
|
||||
|
||||
/* Used to get the correct gpu texture from an Image datablock. */
|
||||
typedef enum eGPUTextureTarget {
|
||||
TEXTARGET_2D = 0,
|
||||
TEXTARGET_2D_ARRAY,
|
||||
TEXTARGET_TILE_MAPPING,
|
||||
TEXTARGET_COUNT,
|
||||
} eGPUTextureTarget;
|
||||
|
||||
/* GPU Samplers state
|
||||
* - Specify the sampler state to bind a texture with.
|
||||
* - Internally used by textures.
|
||||
@@ -237,21 +230,9 @@ GPUTexture *GPU_texture_create_cube_array(
|
||||
GPUTexture *GPU_texture_create_from_vertbuf(struct GPUVertBuf *vert);
|
||||
GPUTexture *GPU_texture_create_buffer(eGPUTextureFormat data_type, const uint buffer);
|
||||
|
||||
GPUTexture *GPU_texture_create_error(eGPUTextureTarget target);
|
||||
GPUTexture *GPU_texture_create_compressed(
|
||||
int w, int h, int miplen, eGPUTextureFormat format, const void *data);
|
||||
|
||||
GPUTexture *GPU_texture_from_blender(struct Image *ima,
|
||||
struct ImageUser *iuser,
|
||||
struct ImBuf *ibuf,
|
||||
eGPUTextureTarget target);
|
||||
|
||||
/* movie clip drawing */
|
||||
GPUTexture *GPU_texture_from_movieclip(struct MovieClip *clip,
|
||||
struct MovieClipUser *cuser,
|
||||
eGPUTextureTarget target);
|
||||
void GPU_free_texture_movieclip(struct MovieClip *clip);
|
||||
|
||||
void GPU_texture_add_mipmap(GPUTexture *tex,
|
||||
eGPUDataFormat gpu_data_format,
|
||||
int miplvl,
|
||||
|
||||
@@ -54,8 +54,6 @@
|
||||
|
||||
#include "GPU_draw.h"
|
||||
#include "GPU_extensions.h"
|
||||
#include "GPU_matrix.h"
|
||||
#include "GPU_platform.h"
|
||||
#include "GPU_texture.h"
|
||||
|
||||
#include "PIL_time.h"
|
||||
@@ -982,7 +980,7 @@ void GPU_free_image(Image *ima)
|
||||
gpu_free_image(ima, BLI_thread_is_main());
|
||||
}
|
||||
|
||||
void GPU_free_texture_movieclip(struct MovieClip *clip)
|
||||
void GPU_free_movieclip(struct MovieClip *clip)
|
||||
{
|
||||
/* number of gpu textures to keep around as cache
|
||||
* We don't want to keep too many GPU textures for
|
||||
|
||||
@@ -117,6 +117,14 @@ typedef struct ImageTile {
|
||||
#define IMA_NEED_FRAME_RECALC (1 << 3)
|
||||
#define IMA_SHOW_STEREO (1 << 4)
|
||||
|
||||
/* Used to get the correct gpu texture from an Image datablock. */
|
||||
typedef enum eGPUTextureTarget {
|
||||
TEXTARGET_2D = 0,
|
||||
TEXTARGET_2D_ARRAY,
|
||||
TEXTARGET_TILE_MAPPING,
|
||||
TEXTARGET_COUNT,
|
||||
} eGPUTextureTarget;
|
||||
|
||||
typedef struct Image {
|
||||
ID id;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user