Przeglądaj źródła

libobs: Add function to get last main output texture

Allows the ability to get the last rendered texture of the main output
view.
jp9000 7 lat temu
rodzic
commit
904ad9be1d
2 zmienionych plików z 21 dodań i 0 usunięć
  1. 17 0
      libobs/obs.c
  2. 4 0
      libobs/obs.h

+ 17 - 0
libobs/obs.c

@@ -1468,6 +1468,23 @@ void obs_render_main_texture(void)
 		gs_draw_sprite(tex, 0, 0, 0);
 }
 
+gs_texture_t *obs_get_main_texture(void)
+{
+	struct obs_core_video *video = &obs->video;
+	int last_tex;
+
+	if (!obs) return NULL;
+
+	last_tex = video->cur_texture == 0
+		? NUM_TEXTURES - 1
+		: video->cur_texture - 1;
+
+	if (!video->textures_rendered[last_tex])
+		return NULL;
+
+	return video->render_textures[last_tex];
+}
+
 void obs_set_master_volume(float volume)
 {
 	struct calldata data = {0};

+ 4 - 0
libobs/obs.h

@@ -564,6 +564,10 @@ EXPORT void obs_render_main_view(void);
 /** Renders the last main output texture */
 EXPORT void obs_render_main_texture(void);
 
+/** Returns the last main output texture.  This can return NULL if the texture
+ * is unavailable. */
+EXPORT gs_texture_t *obs_get_main_texture(void);
+
 /** Sets the master user volume */
 EXPORT void obs_set_master_volume(float volume);