1. 04 10月, 2014 1 次提交
    • P
      Add obs_get_default_rect_effect · 0f15cc14
      Palana 提交于
      This provides a default effect for users of GL_TEXTURE_RECTANGLE/textures
      that return true for gs_texture_is_rect
      0f15cc14
  2. 01 10月, 2014 1 次提交
    • P
      Add 'update_properties' signal and obs_source_update_properties call · b99c378e
      Palana 提交于
      obs_source_update_properties should be called by sources when property
      values change, e.g. a capture device source would use this when it
      detects a new capture device (in case its properties contain a list of
      available capture devices or similar)
      b99c378e
  3. 27 9月, 2014 1 次提交
    • J
      (API Change) Use const params where applicable · 41fad2d1
      jp9000 提交于
      This Fixes a minor flaw with the API where data had to always be mutable
      to be usable by the API.
      
      Functions that do not modify the fundamental underlying data of a
      structure should be marked as constant, both for safety and to signify
      that the parameter is input only and will not be modified by the
      function using it.
      41fad2d1
  4. 26 9月, 2014 1 次提交
    • J
      (API Change) Remove pointers from all typedefs · c9df41c1
      jp9000 提交于
      Typedef pointers are unsafe.  If you do:
      typedef struct bla *bla_t;
      then you cannot use it as a constant, such as: const bla_t, because
      that constant will be to the pointer itself rather than to the
      underlying data.  I admit this was a fundamental mistake that must
      be corrected.
      
      All typedefs that were pointer types will now have their pointers
      removed from the type itself, and the pointers will be used when they
      are actually used as variables/parameters/returns instead.
      
      This does not break ABI though, which is pretty nice.
      c9df41c1
  5. 16 9月, 2014 1 次提交
  6. 05 9月, 2014 1 次提交
  7. 11 8月, 2014 1 次提交
    • J
      Add API functions for output/encoder scaling · a0f679bc
      jp9000 提交于
      API functions added:
      -----------------------------------------------
      obs_output_set_preferred_size
      obs_output_get_width
      obs_output_get_height
      obs_encoder_set_scaled_size
      obs_encoder_get_width
      obs_encoder_get_height
      
      These functions allow for easier means of setting a custom resolution on
      an output or encoder.
      
      If an output uses an encoder and you set the preferred width/height
      using the output, then the output will attempt to set the scaled
      width/height for the encoder it's currently using.
      
      Outputs and encoders now should use these functions to determine the
      width/height of the raw frame data instead of using the video-io
      functions.
      a0f679bc
  8. 10 8月, 2014 1 次提交
    • J
      (API Change) Improve graphics API consistency · 5780f3f1
      jp9000 提交于
      Summary:
      - Prefix all graphics subsystem names with gs_ or GS_
      - Unsquish funciton names (for example _setfloat to _set_float)
      - Changed create functions to be more consistent with the rest of the
        API elsewhere.  For exmaple, instead of
        gs_create_texture/gs_texture_destroy, it's now
        gs_texture_create/gs_texture_destroy
      - Renamed gs_stencil_op enum to gs_stencil_op_type
      
      From:                            To:
      -----------------------------------------------------------
      tvertarray                       gs_tvertarray
      vb_data                          gs_vb_data
      vbdata_create                    gs_vbdata_create
      vbdata_destroy                   gs_vbdata_destroy
      shader_param                     gs_shader_param
      gs_effect                        gs_effect
      effect_technique                 gs_effect_technique
      effect_pass                      gs_effect_pass
      effect_param                     gs_effect_param
      texture_t                        gs_texture_t
      stagesurf_t                      gs_stagesurf_t
      zstencil_t                       gs_zstencil_t
      vertbuffer_t                     gs_vertbuffer_t
      indexbuffer_t                    gs_indexbuffer_t
      samplerstate_t                   gs_samplerstate_t
      swapchain_t                      gs_swapchain_t
      texrender_t                      gs_texrender_t
      shader_t                         gs_shader_t
      sparam_t                         gs_sparam_t
      effect_t                         gs_effect_t
      technique_t                      gs_technique_t
      eparam_t                         gs_eparam_t
      device_t                         gs_device_t
      graphics_t                       graphics_t
      shader_param_type                gs_shader_param_type
      SHADER_PARAM_UNKNOWN             GS_SHADER_PARAM_UNKNOWN
      SHADER_PARAM_BOOL                GS_SHADER_PARAM_BOOL
      SHADER_PARAM_FLOAT               GS_SHADER_PARAM_FLOAT
      SHADER_PARAM_INT                 GS_SHADER_PARAM_INT
      SHADER_PARAM_STRING              GS_SHADER_PARAM_STRING
      SHADER_PARAM_VEC2                GS_SHADER_PARAM_VEC2
      SHADER_PARAM_VEC3                GS_SHADER_PARAM_VEC3
      SHADER_PARAM_VEC4                GS_SHADER_PARAM_VEC4
      SHADER_PARAM_MATRIX4X4           GS_SHADER_PARAM_MATRIX4X4
      SHADER_PARAM_TEXTURE             GS_SHADER_PARAM_TEXTURE
      shader_param_info                gs_shader_param_info
      shader_type                      gs_shader_type
      SHADER_VERTEX                    GS_SHADER_VERTEX
      SHADER_PIXEL                     GS_SHADER_PIXEL
      shader_destroy                   gs_shader_destroy
      shader_numparams                 gs_shader_get_num_params
      shader_getparambyidx             gs_shader_get_param_by_idx
      shader_getparambyname            gs_shader_get_param_by_name
      shader_getviewprojmatrix         gs_shader_get_viewproj_matrix
      shader_getworldmatrix            gs_shader_get_world_matrix
      shader_getparaminfo              gs_shader_get_param_info
      shader_setbool                   gs_shader_set_bool
      shader_setfloat                  gs_shader_set_float
      shader_setint                    gs_shader_set_int
      shader_setmatrix3                gs_shader_setmatrix3
      shader_setmatrix4                gs_shader_set_matrix4
      shader_setvec2                   gs_shader_set_vec2
      shader_setvec3                   gs_shader_set_vec3
      shader_setvec4                   gs_shader_set_vec4
      shader_settexture                gs_shader_set_texture
      shader_setval                    gs_shader_set_val
      shader_setdefault                gs_shader_set_default
      effect_property_type             gs_effect_property_type
      EFFECT_NONE                      GS_EFFECT_NONE
      EFFECT_BOOL                      GS_EFFECT_BOOL
      EFFECT_FLOAT                     GS_EFFECT_FLOAT
      EFFECT_COLOR                     GS_EFFECT_COLOR
      EFFECT_TEXTURE                   GS_EFFECT_TEXTURE
      effect_param_info                gs_effect_param_info
      effect_destroy                   gs_effect_destroy
      effect_gettechnique              gs_effect_get_technique
      technique_begin                  gs_technique_begin
      technique_end                    gs_technique_end
      technique_beginpass              gs_technique_begin_pass
      technique_beginpassbyname        gs_technique_begin_pass_by_name
      technique_endpass                gs_technique_end_pass
      effect_numparams                 gs_effect_get_num_params
      effect_getparambyidx             gs_effect_get_param_by_idx
      effect_getparambyname            gs_effect_get_param_by_name
      effect_updateparams              gs_effect_update_params
      effect_getviewprojmatrix         gs_effect_get_viewproj_matrix
      effect_getworldmatrix            gs_effect_get_world_matrix
      effect_getparaminfo              gs_effect_get_param_info
      effect_setbool                   gs_effect_set_bool
      effect_setfloat                  gs_effect_set_float
      effect_setint                    gs_effect_set_int
      effect_setmatrix4                gs_effect_set_matrix4
      effect_setvec2                   gs_effect_set_vec2
      effect_setvec3                   gs_effect_set_vec3
      effect_setvec4                   gs_effect_set_vec4
      effect_settexture                gs_effect_set_texture
      effect_setval                    gs_effect_set_val
      effect_setdefault                gs_effect_set_default
      texrender_create                 gs_texrender_create
      texrender_destroy                gs_texrender_destroy
      texrender_begin                  gs_texrender_begin
      texrender_end                    gs_texrender_end
      texrender_reset                  gs_texrender_reset
      texrender_gettexture             gs_texrender_get_texture
      GS_BUILDMIPMAPS                  GS_BUILD_MIPMAPS
      GS_RENDERTARGET                  GS_RENDER_TARGET
      gs_device_name                   gs_get_device_name
      gs_device_type                   gs_get_device_type
      gs_entercontext                  gs_enter_context
      gs_leavecontext                  gs_leave_context
      gs_getcontext                    gs_get_context
      gs_renderstart                   gs_render_start
      gs_renderstop                    gs_render_stop
      gs_rendersave                    gs_render_save
      gs_getinput                      gs_get_input
      gs_geteffect                     gs_get_effect
      gs_create_effect_from_file       gs_effect_create_from_file
      gs_create_effect                 gs_effect_create
      gs_create_vertexshader_from_file gs_vertexshader_create_from_file
      gs_create_pixelshader_from_file  gs_pixelshader_create_from_file
      gs_create_texture_from_file      gs_texture_create_from_file
      gs_resetviewport                 gs_reset_viewport
      gs_set2dmode                     gs_set_2d_mode
      gs_set3dmode                     gs_set_3d_mode
      gs_create_swapchain              gs_swapchain_create
      gs_getsize                       gs_get_size
      gs_getwidth                      gs_get_width
      gs_getheight                     gs_get_height
      gs_create_texture                gs_texture_create
      gs_create_cubetexture            gs_cubetexture_create
      gs_create_volumetexture          gs_voltexture_create
      gs_create_zstencil               gs_zstencil_create
      gs_create_stagesurface           gs_stagesurface_create
      gs_create_samplerstate           gs_samplerstate_create
      gs_create_vertexshader           gs_vertexshader_create
      gs_create_pixelshader            gs_pixelshader_create
      gs_create_vertexbuffer           gs_vertexbuffer_create
      gs_create_indexbuffer            gs_indexbuffer_create
      gs_gettexturetype                gs_get_texture_type
      gs_load_defaultsamplerstate      gs_load_default_samplerstate
      gs_getvertexshader               gs_get_vertex_shader
      gs_getpixelshader                gs_get_pixel_shader
      gs_getrendertarget               gs_get_render_target
      gs_getzstenciltarget             gs_get_zstencil_target
      gs_setrendertarget               gs_set_render_target
      gs_setcuberendertarget           gs_set_cube_render_target
      gs_beginscene                    gs_begin_scene
      gs_draw                          gs_draw
      gs_endscene                      gs_end_scene
      gs_setcullmode                   gs_set_cull_mode
      gs_getcullmode                   gs_get_cull_mode
      gs_enable_depthtest              gs_enable_depth_test
      gs_enable_stenciltest            gs_enable_stencil_test
      gs_enable_stencilwrite           gs_enable_stencil_write
      gs_blendfunction                 gs_blend_function
      gs_depthfunction                 gs_depth_function
      gs_stencilfunction               gs_stencil_function
      gs_stencilop                     gs_stencil_op
      gs_setviewport                   gs_set_viewport
      gs_getviewport                   gs_get_viewport
      gs_setscissorrect                gs_set_scissor_rect
      gs_create_texture_from_iosurface gs_texture_create_from_iosurface
      gs_create_gdi_texture            gs_texture_create_gdi
      gs_is_compressed_format          gs_is_compressed_format
      gs_num_total_levels              gs_get_total_levels
      texture_setimage                 gs_texture_set_image
      cubetexture_setimage             gs_cubetexture_set_image
      swapchain_destroy                gs_swapchain_destroy
      texture_destroy                  gs_texture_destroy
      texture_getwidth                 gs_texture_get_width
      texture_getheight                gs_texture_get_height
      texture_getcolorformat           gs_texture_get_color_format
      texture_map                      gs_texture_map
      texture_unmap                    gs_texture_unmap
      texture_isrect                   gs_texture_is_rect
      texture_getobj                   gs_texture_get_obj
      cubetexture_destroy              gs_cubetexture_destroy
      cubetexture_getsize              gs_cubetexture_get_size
      cubetexture_getcolorformat       gs_cubetexture_get_color_format
      volumetexture_destroy            gs_voltexture_destroy
      volumetexture_getwidth           gs_voltexture_get_width
      volumetexture_getheight          gs_voltexture_get_height
      volumetexture_getdepth           gs_voltexture_getdepth
      volumetexture_getcolorformat     gs_voltexture_get_color_format
      stagesurface_destroy             gs_stagesurface_destroy
      stagesurface_getwidth            gs_stagesurface_get_width
      stagesurface_getheight           gs_stagesurface_get_height
      stagesurface_getcolorformat      gs_stagesurface_get_color_format
      stagesurface_map                 gs_stagesurface_map
      stagesurface_unmap               gs_stagesurface_unmap
      zstencil_destroy                 gs_zstencil_destroy
      samplerstate_destroy             gs_samplerstate_destroy
      vertexbuffer_destroy             gs_vertexbuffer_destroy
      vertexbuffer_flush               gs_vertexbuffer_flush
      vertexbuffer_getdata             gs_vertexbuffer_get_data
      indexbuffer_destroy              gs_indexbuffer_destroy
      indexbuffer_flush                gs_indexbuffer_flush
      indexbuffer_getdata              gs_indexbuffer_get_data
      indexbuffer_numindices           gs_indexbuffer_get_num_indices
      indexbuffer_gettype              gs_indexbuffer_get_type
      texture_rebind_iosurface         gs_texture_rebind_iosurface
      texture_get_dc                   gs_texture_get_dc
      texture_release_dc               gs_texture_release_dc
      5780f3f1
  9. 09 8月, 2014 12 次提交
    • J
      (API Change) Use 'get' convention in libobs (base) · a3682fc8
      jp9000 提交于
      Instead of having functions like obs_signal_handler() that can fail to
      properly specify their actual intent in the name (does it signal a
      handler, or does it return a signal handler?), always prefix functions
      that are meant to get information with 'get' to make its functionality
      more explicit.
      
      Previous names:             New names:
      -----------------------------------------------------------
      obs_audio                   obs_get_audio
      obs_video                   obs_get_video
      obs_signalhandler           obs_get_signal_handler
      obs_prochandler             obs_get_proc_handler
      obs_source_signalhandler    obs_source_get_signal_handler
      obs_source_prochandler      obs_source_get_proc_handler
      obs_output_signalhandler    obs_output_get_signal_handler
      obs_output_prochandler      obs_output_get_proc_handler
      obs_service_signalhandler   obs_service_get_signal_handler
      obs_service_prochandler     obs_service_get_proc_handler
      a3682fc8
    • J
      (API Change) Unsquish libobs (base) names · 73baaa59
      jp9000 提交于
      Previous names:             New names:
      -----------------------------------------------------------
      obs_view_setsource          obs_view_set_source
      obs_view_getsource          obs_view_get_source
      obs_source_getdisplayname   obs_source_get_display_name
      obs_source_getwidth         obs_source_get_width
      obs_source_getheight        obs_source_get_height
      obs_filter_getparent        obs_filter_get_parent
      obs_filter_gettarget        obs_filter_get_target
      obs_source_filter_setorder  obs_source_filter_set_order
      obs_source_getsettings      obs_source_get_settings
      obs_source_getname          obs_source_get_name
      obs_source_setname          obs_source_set_name
      obs_source_setvolume        obs_source_set_volume
      obs_source_getvolume        obs_source_get_volume
      obs_scene_getsource         obs_scene_get_source
      obs_scene_fromsource        obs_scene_from_source
      obs_scene_findsource        obs_scene_find_source
      obs_output_getdisplayname   obs_output_get_display_name
      obs_output_getname          obs_output_get_name
      obs_encoder_getname         obs_encoder_get_name
      obs_service_getdisplayname  obs_service_get_display_name
      obs_service_getname         obs_service_get_name
      73baaa59
    • J
      (API Change) Remove obs_graphics() · 41176eef
      jp9000 提交于
      API Removed:
      - graphics_t obs_graphics();
      Replaced With:
      - void obs_enter_graphics();
      - void obs_leave_graphics();
      
      Description:
        obs_graphics() was somewhat of a pointless function.  The only time
      that it was ever necessary was to pass it as a parameter to
      gs_entercontext() followed by a subsequent gs_leavecontext() call after
      that.  So, I felt that it made a bit more sense just to implement
      obs_enter_graphics() and obs_leave_graphics() functions to do the exact
      same thing without having to repeat that code.  There's really no need
      to ever "hold" the graphics pointer, though I suppose that could change
      in the future so having a similar function come back isn't out of the
      question.
      
      Still, this at least reduces the amount of unnecessary repeated code for
      the time being.
      41176eef
    • J
      (API Change) Un-squish obs_sceneitem_* · b007c6b1
      jp9000 提交于
      Renamed:                         To:
      -----------------------------------------------------------
      obs_sceneitem_getscene           obs_sceneitem_get_scene
      obs_sceneitem_getsource          obs_sceneitem_get_source
      obs_sceneitem_setpos             obs_sceneitem_set_pos
      obs_sceneitem_setrot             obs_sceneitem_set_rot
      obs_sceneitem_setscale           obs_sceneitem_set_scale
      obs_sceneitem_setalignment       obs_sceneitem_set_alignment
      obs_sceneitem_setorder           obs_sceneitem_set_order
      obs_sceneitem_getpos             obs_sceneitem_get_pos
      obs_sceneitem_getrot             obs_sceneitem_get_rot
      obs_sceneitem_getscale           obs_sceneitem_get_scale
      obs_sceneitem_getalignment       obs_sceneitem_get_alignment
      b007c6b1
    • J
      (API Change) Split obs_source_gettype · e42af671
      jp9000 提交于
      Changed:
      - obs_source_gettype
      To:
      - enum obs_source_type obs_source_get_type(obs_source_t source);
      - const char *obs_source_get_id(obs_source_t source);
      
      This function was inconsistent for a number of reasons.  First, it
      returns both the ID and the type of source (input/transition/filter),
      which is inconsistent with the name of "get type".  Secondly, the
      'squishy' naming convention which has just turned out to be bad
      practice and causes inconsistencies.  So it's now replaced with two
      functions that just return the type and the ID.
      e42af671
    • J
      (API Change) Rename source_audio structure · 0961af6e
      jp9000 提交于
      Rename source_audio to obs_source_audio to make it more consistent with
      the rest of the API
      0961af6e
    • J
      (API Change) Rename filtered_audio structure · 45eec068
      jp9000 提交于
      Reanmed filtered_audio to obs_audio_data, to improve the naming and
      prefix with obs_ for the sake with consistency with the rest of the API
      45eec068
    • J
      (API Change) Rename allow_direct_render enum · 4d1272e6
      jp9000 提交于
      For the sake of consistency, changed allow_direct_render to
      obs_allow_direct_render
      4d1272e6
    • J
      (API Change) Rename order_movement · d2b4f826
      jp9000 提交于
      Prefix with obs_ for the sake of consistency
      
      Renamed enums:
      - order_movement (now obs_order_movement)
      
      Affected functions:
      - obs_source_filter_setorder
      - obs_sceneitem_setorder
      d2b4f826
    • J
      (API Change) Rename 'source_frame' + related · 4122a5b9
      jp9000 提交于
      For the sake of naming consistency with the rest of obs.h, prefix this
      structure and associated functions with obs_.
      
      Renamed structures:
      - struct source_frame (now obs_source_frame)
      
      Renamed functions:
      - source_frame_init (now obs_source_frame_init)
      - source_frame_free (now obs_source_frame_free)
      - source_frame_create (now obs_source_frame_create)
      - source_frame_destroy (now obs_source_frame_destroy)
      
      Affected functions:
      - obs_source_output_video
      - obs_source_get_frame
      - obs_source_release_frame
      4122a5b9
    • J
      (API Change) Rename obs_source_get(/release)frame · 7b402245
      jp9000 提交于
      Renamed functions:
      - obs_source_getframe (rename to obs_source_get_frame)
      - obs_source_releaseframe (rename to obs_source_release_frame)
      
      For the sake of consistency and helping to get rid of the "squishy
      function name" issue
      7b402245
    • J
      (API Change) Rename obs_sceneitem_info structure · 24bd82a0
      jp9000 提交于
      Change obs_sceneitem_info structure to obs_transform_info - this
      structure will not just be used with scene items in the future.
      24bd82a0
  10. 28 7月, 2014 3 次提交
    • J
      Add API functions to get information about modules · e87ed914
      jp9000 提交于
      e87ed914
    • J
      (API Change) Refactor module handling · 59ea3bec
      jp9000 提交于
      Changed API:
      - char *obs_find_plugin_file(const char *sub_path);
      
        Changed to: char *obs_module_file(const char *file);
      
        Cahnge it so you no longer need to specify a sub-path such as:
        obs_find_plugin_file("module_name/file.ext")
      
        Instead, now automatically handle the module data path so all you need
        to do is:
        obs_module_file("file.ext")
      
      - int obs_load_module(const char *name);
      
        Changed to: int obs_open_module(obs_module_t *module,
                                        const char *path,
                                        const char *data_path);
                    bool obs_init_module(obs_module_t module);
      
        Change the module loading API so that if the front-end chooses, it can
        load modules directly from a specified path, and associate a data
        directory with it on the spot.
      
        The module will not be initialized immediately; obs_init_module must
        be called on the module pointer in order to fully initialize the
        module.  This is done so a module can be disabled by the front-end if
        the it so chooses.
      
      New API:
      - void obs_add_module_path(const char *bin, const char *data);
      
        These functions allow you to specify new module search paths to add,
        and allow you to search through them, or optionally just load all
        modules from them.  If the string %module% is included, it will
        replace it with the module's name when that string is used as a
        lookup.  Data paths are now directly added to the module's internal
        storage structure, and when obs_find_module_file is used, it will look
        up the pointer to the obs_module structure and get its data directory
        that way.
      
        Example:
        obs_add_module_path("/opt/obs/my-modules/%module%/bin",
                            "/opt/obs/my-modules/%module%/data");
      
        This would cause it to additionally look for the binary of a
        hypthetical module named "foo" at /opt/obs/my-modules/foo/bin/foo.so
        (or libfoo.so), and then look for the data in
        /opt/obs/my-modules/foo/data.
      
        This gives the front-end more flexibility for handling third-party
        plugin modules, or handling all plugin modules in a custom way.
      
      - void obs_find_modules(obs_find_module_callback_t callback, void
                              *param);
      
        This searches the existing paths for modules and calls the callback
        function when any are found.  Useful for plugin management and custom
        handling of the paths by the front-end if desired.
      
      - void obs_load_all_modules(void);
      
        Search through the paths and both loads and initializes all modules
        automatically without custom handling.
      
      - void obs_enum_modules(obs_enum_module_callback_t callback,
                              void *param);
      
        Enumerates currently opened modules.
      59ea3bec
    • J
      Add function to get current core version · ee4a93b4
      jp9000 提交于
      The version macro that modules use to compile versus the actual core
      version that may be in use may be different, so this is a way to compare
      them to check for compatibility issues later on.
      ee4a93b4
  11. 21 7月, 2014 1 次提交
    • J
      (API Change) obs_reset_video: Use return codes · 778cc2b3
      jp9000 提交于
      Changed API functions:
      libobs: obs_reset_video
      
      Before, video initialization returned a boolean, but "failed" is too
      little information, if it fails due to lack of device capabilities or
      bad video device parameters, the front-end needs to know that.
      
      The OBS Basic UI has also been updated to reflect this API change.
      778cc2b3
  12. 13 7月, 2014 1 次提交
  13. 12 7月, 2014 1 次提交
    • J
      libobs: Add function for default module locale · ac760efb
      jp9000 提交于
      This function is used to simplify the process when using the default
      locale handling for modules.  It will automatically search in the plugin
      data directory associated with the specific module specified, load the
      default locale text (for example english if its default language is
      english), and then it will load the set locale on top of the default
      locale, which will cause text to use the default locale if the desired
      locale text is not found.
      ac760efb
  14. 07 7月, 2014 1 次提交
    • J
      Add statistics functions to outputs · 3d1c1329
      jp9000 提交于
      Total bytes, total frames, and frames dropped.  Total frames is
      generated automatically, but total bytes and total dropped frames are
      returned via callbacks.
      3d1c1329
  15. 03 7月, 2014 1 次提交
    • J
      Implement reconnecting · 4f2a731a
      jp9000 提交于
      The core itself now provides reconnection options (enabled by default, 2
      second timeout between reconnects, 20 retries max until actual
      disconnection occurs).  This will make things easier for both module
      developers and UI developers.
      
      Reconnecting treats the stream as though it were still active, and
      signals are sent when reconnecting and upon successful reconnection.
      
      Need to implement user interface information for reconnections.
      4f2a731a
  16. 02 7月, 2014 1 次提交
  17. 26 6月, 2014 2 次提交
    • J
      Remove 'locale' parameter from all callbacks · 0b4a259e
      jp9000 提交于
      The locale parameter was a mistake, because it puts extra needless
      burden upon the module developer to have to handle this variable for
      each and every single callback function.  The parameter is being removed
      in favor of a single centralized module callback function that
      specifically updates locale information for a module only when needed.
      0b4a259e
    • J
      Add API for setting/getting current locale · 899f0530
      jp9000 提交于
      This API is used to set the current locale for libobs, which it will set
      for all modules when a module is loaded or specifically when the locale
      is manually changed.
      899f0530
  18. 17 6月, 2014 2 次提交
  19. 16 6月, 2014 2 次提交
    • J
      UI: Add scene editing · 452e0695
      jp9000 提交于
      So, scene editing was interesting (and by interesting I mean
      excruciating).  I almost implemented 'manipulator' visuals (ala 3dsmax
      for example), and used 3 modes for controlling position/rotation/size,
      but in a 2D editing, it felt clunky, so I defaulted back to simply
      click-and-drag for movement, and then took a similar though slightly
      different looking approach for handling scaling and reszing.
      
      I also added a number of menu item helpers related to positioning,
      scaling, rotating, flipping, and resetting the transform back to
      default.
      
      There is also a new 'transform' dialog (accessible via menu) which will
      allow you to manually edit every single transform variable of a scene
      item directly if desired.
      
      If a scene item does not have bounds active, pulling on the sides of a
      source will cause it to resize it via base scale rather than by the
      bounding box system (if the source resizes that scale will apply).  If
      bounds are active, it will modify the bounding box only instead.
      
      How a source scales when a bounding box is active depends on the type of
      bounds being used.  You can set it to scale to the inner bounds, the
      outer bounds, scale to bounds width only, scale to bounds height only,
      and a setting to stretch to bounds (which forces a source to always draw
      at the bounding box size rather than be affected by its internal size).
      You can also set it to be used as a 'maximum' size, so that the source
      doesn't necessarily get scaled unless it extends beyond the bounds.
      
      Like in OBS1, objects will snap to the edges unless the control key is
      pressed.  However, this will now happen even if the object is rotated or
      oriented in any strange way.  Snapping will also occur when stretching
      or changing the bounding box size.
      452e0695
    • J
      Scenes: Implement more item positioning features · b23f8cc6
      jp9000 提交于
      There are a ridiculous number of features related to scaling and
      positioning due to requests by a number of people who complained that
      they hated the way that OBS1 would always resize their sources when the
      source's base size changed.  There were also people who wanted more
      control for how the resizing was handled, or the ability to completely
      prevent resizing entirely if desired.  So I made it so that you can
      optionally use a 'bounds' system, which allows you to specify different
      styles of controlling resizing.
      
      If disabled, the source will always automatically resize and only the
      base scale is applied.  If enabled, you have a variety of different ways
      to limit/control how it can resize within the bounds, or make it so it
      can't resize at all.  You can also control alignment within that
      bounding box, so you can make it so that a source always aligns to a
      side or corner of the box.
      
      I also added an alignment value which changes how the source is oriented
      relative to the position of the scene item.  For example, setting
      bottom-right alignment will make it so that the position of the item is
      the bottom right corner of the source.  When the source resizies, it
      will resize leftward and upward in that case, which solves the problem
      of how a source resizes relative to a desired position.
      b23f8cc6
  20. 15 6月, 2014 1 次提交
  21. 21 5月, 2014 2 次提交
  22. 20 5月, 2014 1 次提交
  23. 19 5月, 2014 1 次提交
    • J
      Add help menu with log file uploading · 5ba8b09c
      jp9000 提交于
      Added github gist API uploading to the help menu to help make problems a
      bit easier to debug in the future.  It's somewhat vital that this
      functionality be implemented before any release in order to analyze any
      given problem a user may be experiencing.
      5ba8b09c