1. 10 8月, 2015 16 次提交
  2. 08 8月, 2015 3 次提交
  3. 05 8月, 2015 20 次提交
    • J
      (API Change) Merge branch 'windowless-context' · bf099430
      jp9000 提交于
      API Changed (obs.h):
      -----------------------------------------
      - Removed member variables from struct obs_video_info:
        - window_width
        - window_height
        - window
      
      - Removed functions:
        - obs_add_draw_callback
        - obs_remove_draw_callback
        - obs_resize
        - obs_preview_set_enabled
        - obs_preview_enabled
      
      API Changed (graphics/graphics.h)
      -----------------------------------------
      - Changed third parameter of gs_create from
           const struct gs_init_data *data
        to
           uint32_t adapter
      
      Summary
      -----------------------------------------
      Changing to a windowless context allows the ability to use libobs
      without needing to have it depend on an open window/view, and removes
      superfluous functionality that's already provided by the obs_display
      functions.
      
      Biggest benefits of windowless context:
      - Make it so all window/view related code uses obs_display (which is a
        major refactor/prune)
      - Allows core functions to not have to be dependent upon an existing
        window/view
      - Allow the ability to make a fully CLI front end that doesn't depend on
        a window
      - Allows the ability to a hypothetical CLI from a remote
      
      Because of the API changes, multiple modules are affected by this commit
      to prevent creating broken commits: libobs, libobs-opengl, libobs-d3d11,
      and the UI.
      
      In the libobs back-end, all preview/window API functions that are not
      related to obs_display have been removed, and to draw on a window/view
      you must now always create an obs_display (rather than having "main"
      display functions and then "secondary" display functions that use
      obs_display).
      
      For the technicalities of the graphics back-end, the gs_init function
      now only takes in an adapter parameter instead of window/format/etc
      information.  To draw on a window/view you must now always create a swap
      chain for it (note that obs_display wraps this functionality).
      
      As for the UI, the UI has been refactored so that all dialogs/windows
      that have a preview do not have to manually create OBSDisplay objects;
      the OBSQTDisplay class now automatically handles all the code related to
      displays.  The main window preview now also relies on that same
      functionality/code.
      bf099430
    • J
      UI: Move obs startup/shutdown to obs-app.cpp · 1722425f
      jp9000 提交于
      Now that we aren't dependent upon a window for our context, we can
      safely move the obs context creation/destruction to obs-app.cpp, and use
      the OBSContext helper class to automatically shut down obs.
      1722425f
    • J
      libobs-opengl: Remove windowless context #error · 04e4ca1d
      jp9000 提交于
      04e4ca1d
    • J
      libobs-opengl: Use windowless context (X11) · 09a18b6f
      jp9000 提交于
      (Non-compiling commit: windowless-context branch)
      
      In the land of X11, life is suffering.
      
      Suffering aside, X11 is capable of a hardware-accelerated windowless
      context by using a GLXPbuffer in conjunction with glXMakeContextCurrent.
      09a18b6f
    • J
      libobs-opengl: Use windowless context (windows) · e5e168e9
      jp9000 提交于
      (Non-compiling commit: windowless-context branch)
      
      On windows, you can just create a hidden window as the "main" opengl
      window to get the equivalent of a windowless context.  You might be able
      to do it without a window, but honestly it's more trouble than it's
      worth.
      e5e168e9
    • J
      libobs-opengl: Use windowless context (cocoa) · ce1014c4
      jp9000 提交于
      (Non-compiling commit: windowless-context branch)
      
      On cocoa, windowless contexts appear to be no problem.  You just don't
      set a view or just clear the view.
      ce1014c4
    • J
      libobs-opengl: Implement windowless context · a496f64d
      jp9000 提交于
      (Non-compiling commit: windowless-context branch)
      a496f64d
    • J
      libobs-d3d11: Remove windowless context #error · eb459e2a
      jp9000 提交于
      eb459e2a
    • J
      libobs-d3d11: Use windowless context · 2b62c33c
      jp9000 提交于
      (Non-compiling commit: windowless-context branch)
      2b62c33c
    • J
      UI: Remove windowless context #error · 6e75c187
      jp9000 提交于
      6e75c187
    • J
      UI: Prune obs_display code from secondary windows · e93ca4cd
      jp9000 提交于
      (Non-compiling commit: windowless-context branch)
      
      Now that all obs_display related code has been moved to OBSQTDisplay,
      we can prune a whole bunch of boilerplate code that had to be repeated
      for the displays of each window.
      
      Affects:
      - Properties
      - Filters
      - Interact
      - Projector
      e93ca4cd
    • J
      UI: Change "main preview" to use OBSQTDisplay · f0b90343
      jp9000 提交于
      (Non-compiling commit: windowless-context branch)
      
      Gets rid of all functions/data related to setting up the main preview to
      be associated with obs_reset_video and instead uses OBSQTDisplay for the
      main window display (thus associating it with an obs_display object).
      f0b90343
    • J
      UI: Refactor OBSQTDisplay for windowless context · 34226311
      jp9000 提交于
      (Non-compiling commit: windowless-context branch)
      
      This makes it so that OBSQTDisplay now uses/controls an obs_display
      object directly (rather than having the owner have to associate an
      OBSDisplay with it).  It was separated before because the main window
      for the basic UI would was using the "main preview" stuff before the
      windowless context and had to be handled differently, so you couldn't
      just associate an obs_display object with OBSQTDisplay, meaning that all
      "secondary" previews such as properties/filters/etc had to handle the
      obs_display alone, which caused a lot of needlessly duplicated code.
      
      Also adds a DisplayCreated signal to allow owners to be able to add
      callbacks and such on creation of the actual obs_display context.
      34226311
    • J
      libobs: Remove windowless context #error · 6dfb5957
      jp9000 提交于
      6dfb5957
    • J
      (API Change) libobs: Remove main window funcs/vars · b89ea47b
      jp9000 提交于
      (Non-compiling commit: windowless-context branch)
      
      API Changed:
      ---------------------
      Removed functions:
      - obs_add_draw_callback
      - obs_remove_draw_callback
      - obs_resize
      - obs_preview_set_enabled
      - obs_preview_enabled
      
      Removed member variables from struct obs_video_info:
      - window_width
      - window_height
      - window
      
      Summary:
      ---------------------
      Changes the core libobs API to not be dependent upon a main window/view.
      If you wish to draw to a window/view, use an obs_display object to
      handle it.
      
      This allows the use of libobs without requiring a window to be present
      on the system.  This is also prunes code that had to be needlessly
      duplicated to handle the "main" window.
      b89ea47b
    • J
      (API Change) libobs/graphics: Change gs_create param · cf9f21e4
      jp9000 提交于
      (Non-compiling commit: windowless-context branch)
      
      Changes API from:
      ---------------------
      EXPORT int gs_create(graphics_t **graphics, const char *module,
      		const struct gs_init_data *data);
      
      To:
      ---------------------
      EXPORT int gs_create(graphics_t **graphics, const char *module,
      		uint32_t adapter);
      
      Summary:
      ---------------------
      Changes the gs_create function to use an adapter parameter instead of
      requiring a gs_init_data with window/color/etc information.
      cf9f21e4
    • J
      UI: Add windowless context #error · 5c9325f3
      jp9000 提交于
      5c9325f3
    • J
      libobs-d3d11: Add windowless context #error · 84412316
      jp9000 提交于
      84412316
    • J
      libobs-opengl: Add windowless context #error · 58b49f68
      jp9000 提交于
      58b49f68
    • J
      libobs: Add windowless context #error · 358eb562
      jp9000 提交于
      Intentionally breaks compilation when trying to compile the specific
      merged commits within the windowless-context branch.  This is meant to
      be used in conjunction with a merge commit so that bisecting will never
      see any non-compiling commits.
      358eb562
  4. 03 8月, 2015 1 次提交