Open Broadcaster Software
Free, open source software for live streaming and recording
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
obs-scene.h
Go to the documentation of this file.
1 /******************************************************************************
2  Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
3 
4  This program is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program. If not, see <http://www.gnu.org/licenses/>.
16 ******************************************************************************/
17 
18 #pragma once
19 
20 #include "obs.h"
21 #include "obs-internal.h"
22 #include "graphics/matrix4.h"
23 
24 /* how obs scene! */
25 
26 struct item_action {
27  bool visible;
29 };
30 
32  volatile long ref;
33  volatile bool removed;
34 
36 
37  struct obs_scene *parent;
38  struct obs_source *source;
39  volatile long active_refs;
40  volatile long defer_update;
42  bool visible;
43  bool selected;
44  bool locked;
45 
48 
49  struct vec2 pos;
50  struct vec2 scale;
51  float rot;
53 
54  /* last width/height of the source, this is used to check whether
55  * the transform needs updating */
58 
61 
64 
67  struct vec2 bounds;
68 
70 
72 
73  pthread_mutex_t actions_mutex;
74  DARRAY(struct item_action) audio_actions;
75 
76  /* would do **prev_next, but not really great for reordering */
79 };
80 
81 struct obs_scene {
82  struct obs_source *source;
83 
85 
86  pthread_mutex_t video_mutex;
87  pthread_mutex_t audio_mutex;
89 };
bool visible
Definition: obs-scene.h:42
Definition: obs-scene.h:81
bool user_visible
Definition: obs-scene.h:41
int64_t id
Definition: obs-scene.h:35
pthread_mutex_t audio_mutex
Definition: obs-scene.h:87
gs_texrender_t * item_render
Definition: obs-scene.h:46
volatile long active_refs
Definition: obs-scene.h:39
DARRAY(struct item_action) audio_actions
unsigned uint32_t
Definition: vc_stdint.h:31
uint32_t align
Definition: obs-scene.h:52
Definition: obs-internal.h:531
uint32_t last_height
Definition: obs-scene.h:57
Definition: vec2.h:27
Definition: obs-scene.h:26
struct obs_scene_item * prev
Definition: obs-scene.h:77
unsigned __int64 uint64_t
Definition: vc_stdint.h:33
uint32_t bounds_align
Definition: obs-scene.h:66
bool selected
Definition: obs-scene.h:43
bool locked
Definition: obs-scene.h:44
obs_bounds_type
Definition: obs.h:127
struct obs_data obs_data_t
Definition: obs-data.h:42
volatile long ref
Definition: obs-scene.h:32
enum obs_scale_type scale_filter
Definition: obs-scene.h:60
obs_hotkey_pair_id toggle_visibility
Definition: obs-scene.h:69
volatile long defer_update
Definition: obs-scene.h:40
obs_scale_type
Definition: obs.h:114
bool visible
Definition: obs-scene.h:27
struct vec2 pos
Definition: obs-scene.h:49
Definition: matrix4.h:32
enum obs_bounds_type bounds_type
Definition: obs-scene.h:65
int64_t id_counter
Definition: obs-scene.h:84
struct obs_scene_item * first_item
Definition: obs-scene.h:88
size_t obs_hotkey_pair_id
Definition: obs-hotkey.h:25
pthread_mutex_t video_mutex
Definition: obs-scene.h:86
float rot
Definition: obs-scene.h:51
Definition: bounds.h:39
struct vec2 output_scale
Definition: obs-scene.h:59
struct obs_source * source
Definition: obs-scene.h:38
struct matrix4 box_transform
Definition: obs-scene.h:62
struct obs_source * source
Definition: obs-scene.h:82
pthread_mutex_t actions_mutex
Definition: obs-scene.h:73
uint32_t last_width
Definition: obs-scene.h:56
Definition: obs-scene.h:31
uint64_t timestamp
Definition: obs-scene.h:28
obs_data_t * private_settings
Definition: obs-scene.h:71
struct matrix4 draw_transform
Definition: obs-scene.h:63
struct obs_sceneitem_crop crop
Definition: obs-scene.h:47
struct obs_scene * parent
Definition: obs-scene.h:37
Main libobs header used by applications.
__int64 int64_t
Definition: vc_stdint.h:32
struct vec2 scale
Definition: obs-scene.h:50
Definition: obs.h:1350
struct gs_texture_render gs_texrender_t
Definition: graphics.h:265
volatile bool removed
Definition: obs-scene.h:33
struct obs_scene_item * next
Definition: obs-scene.h:78