0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
Commit Graph

44 Commits

Author SHA1 Message Date
jp9000
8b8217f68e Fix a some more linux/GCC specific warnings 2014-02-14 15:56:01 -07:00
jp9000
966b943d5b Remove majority of warnings
There were a *lot* of warnings, managed to remove most of them.

Also, put warning flags before C_FLAGS and CXX_FLAGS, rather than after,
as -Wall -Wextra was overwriting flags that came before it.
2014-02-14 15:13:36 -07:00
Palana
ad4b581112 Improve setting type consistency 2014-01-29 08:40:04 +01:00
jp9000
9116be8d9c Improve safety for settings usage
- Add 'set_default' functions to obs-data.*.  These functions ensure
  that a paramter exists and that the parameter is of a specific type.
  If not, it will create or overwrite the value with the default setting
  instead.

  These functions are meant to be explicitly called before using any of
  the 'get' functions.  The reason why it was designed this way is to
  encourage defaults to be set in a single place/function.

  For example, ideal usage is to create one function for your data,
  "set_my_defaults(obs_data_t data)", set all the default values within
  that function, and then call that function on create/update, that way
  all defaults are centralized to a single place.

- Ensure that data passed to sources/encoders/outputs/etc is always
  valid, and not a null value.

- While I'm remembering, fix a few defaults of the main program config
  file data.
2014-01-28 18:41:24 -07:00
Palana
2aa4c1665a Remove Qt focus frame from various controls 2014-01-25 20:37:53 +01:00
jp9000
f09a9ed435 Apply a number of fixes to the main window
- Fix the size issue with list boxes on mac.  Was displaying the list
  boxes with an improper size.  Turns out it was just the wrong size
  policies on the frame below.

- Ensure the main windows are fully displayed *before* initializing
  subsystems.  This ensures that the graphics system will properly start
  up on macos, and allows the glitch fix.

- Made a workaround for weird QT glitch that would happen to the parent
  of a pure native widget that also has internal painting fully
  disabled.  (Should definitely write an example and report this bug on
  the QT forums)
2014-01-25 09:08:56 -07:00
jp9000
4cba9d336a Fix render issues with main preview widget
- I seem to have fixed ths issues with the main preview widget.  It
   seems you just need to set the right window attributes to stop it from
   breaking.  Though when opengl is enabled, there appears to be a weird
   background glitch in the Qt stuff -- I'm not entirely sure what's
   going on.  Bug in Qt?

   Also fixed the layout issues, and the widget now properly resizes and
   centers in to its parent widget.

 - Prevent the render loop from accessing data if the data isn't valid.
   Because obs->data is freed before the graphics stuff, it can cause
   the graphics to keep trying to query the obs->data.displays_mutex
   after it had already been destroyed.
2014-01-23 17:00:42 -07:00
jp9000
afeed34b7a Change the UI to Qt (work in progress)
--------------------------------------------------
Notes and details
--------------------------------------------------
Why was this done?  Because wxWidgets was just lacking in many areas.  I
know wxWidgets is designed to be used with native controls, and that's
great, but wxWidgets just is not a feature-complete toolkit for
multiplatform applications.  It lacks in dialog editors, its code is
archaic and outdated, and I just feel frustrated every time I try to do
things with it.

Qt on the other hand..  I had to actually try Qt to realize how much
better it was as a toolkit.  They've got everything from dialog editors,
to an IDE, a debugger, build tools, just everything, and it's all
top-notch and highly maintained.  The focus of the toolkit is
application development, and they spend their time trying to help
people do exactly that:  make programs.  Great support, great tools,
and because of that, great toolkit.  I just didn't want to alienate any
developers by being stubborn about native widgets.

There *are* some things that are rather lackluster about it and design
choices I disagree with though.  For example, I realize that to have an
easy to use toolkit you have to have some level of code generation.
However, in my personal and humble opinion, moc just feels like a
terrible way to approach the problem.  Even now I feel like there are a
variety of ways you could handle code generation and automatic
management of things like that.  I don't like the idea of circumventing
the language itself like that.  It feels like one giant massive hack.

--------------------------------------------------
Things that aren't working properly:
--------------------------------------------------
 - Settings dialog is not implemented.  The dialog is complete but the
   code to handle the dialog hasn't been constructed yet.

 - There is a problem with using Qt widgets as a device target on
   windows, with at least OpenGL: if I have the preview widget
   automatically resize itself, it seems to cause some sort of video
   card failure that I don't understand.

 - Because of the above, resizing the preview widget has been disabled
   until I can figure out what's going on, so it's currently only a
   32x32 area.

 - Direct3D doesn't seem to render correctly either, seems that the
   viewport is messed up or something.  I'm sort of confused about
   what's going on with it.

 - The new main window seems to be triggering more race conditions than
   the wxWidgets main window dialog did.  I'm not entirely sure what's
   going on here, but this may just be existing race conditions within
   libobs itself that I just never spotted before (even though I tend to
   be very thorough with race conditions any time I use variables
   cross-thread)
2014-01-23 11:53:55 -07:00
jp9000
2c0118b2d7 Prevent debug break when not debugging 2014-01-12 22:04:41 -07:00
Palana
642d0dfca7 fix osx bundle loading of required resources 2014-01-09 01:17:38 +01:00
jp9000
c129cc37cb update API and implement preliminary ability to add sources to scenes 2013-12-30 06:56:39 -07:00
Palana
3462a9b8b9 add newline to non-windows log output 2013-12-30 03:26:09 +01:00
jp9000
aea35a30f8 renamed some window files to ensure they sort a bit better 2013-12-28 21:51:18 -07:00
jp9000
bb53a39aee change os_get_home_path to a better and more clear function, os_get_config_path 2013-12-23 18:59:54 -07:00
jp9000
221ed7d92b make debug messages log to stdout on non-windows operating systems 2013-12-23 01:06:53 -07:00
jp9000
5f6cf61449 add 25 FPS to 'common FPS' list, clean up window initialization for it 2013-12-22 23:45:47 -07:00
jp9000
399b0c8d10 apply configure video settings on startup 2013-12-22 23:40:07 -07:00
jp9000
991b5739d6 move libobs C++ bindings to libobs 2013-12-22 17:42:02 -07:00
Palana
eb8c2923f6 make opengl render stuff on osx without resizing the main window 2013-12-19 23:10:09 +01:00
jp9000
ab4e86cf5c fixed a bug where the GL context wouldn't load up on macos because the window wasn't shown first 2013-12-19 01:00:00 -07:00
jp9000
24c45458b5 use the preview window as the main window associated with the OpenGL context 2013-12-18 22:57:39 -07:00
jp9000
257cbd77ba use astrcmpi to prevent multiplatform clib incompatibility 2013-12-17 20:23:57 -07:00
jp9000
989e734025 made a few more settings UI tweaks 2013-12-17 18:19:24 -07:00
jp9000
495099d84e load english locale text first, then current locale (to prevent unfilled text entries) 2013-12-17 13:56:28 -07:00
jp9000
197c56c9ae add code to select renderer 2013-12-17 02:08:41 -07:00
jp9000
3d88a43520 add video settings code and set up default video setting values for the config 2013-12-16 00:07:08 -07:00
Palana
7bc325d90b updated BPtr semantics to be more in line with stl smart pointers 2013-12-16 01:59:08 +01:00
jp9000
dd1c5b4342 add some preliminary resolution data to video settings (will need to query monitors in the future) 2013-12-14 21:30:16 -07:00
jp9000
c5f497ec1d add settings data for general page, query available languages 2013-12-12 21:47:42 -07:00
jp9000
70290b8c2b fixed locale code, added locale files, made wx use locale files, fixed some bugs, and added platform-specific files to the main program 2013-12-07 10:22:56 -07:00
Palana
e6017ec1ba changed allocation counter to uint64_t
also avoids format string confusion for bnum_allocs
2013-12-07 17:39:43 +01:00
Palana
968f9c03bd use %u for size_t on microsoft compilers 2013-12-07 16:50:05 +01:00
Palana
ad1abd45e8 fix format string 2013-12-06 21:31:42 +01:00
jp9000
0434ef0f62 change naming for some main program files for consistency 2013-12-06 09:16:33 -07:00
jp9000
8298fa4dc7 With the permission of my fellow contributors, I'm switching obs-studio back to GPL v2+ to prevent issues between this project and the original OBS project, and for personal reasons to avoid legal ambiguity (not political reasons, I admittedly would prefer GPL v3+) 2013-12-02 22:24:38 -07:00
Palana
99b06288ba move using namespace below includes
fixes ambiguity between <wchar.h> and <cwchar>
2013-11-28 20:49:06 +01:00
jp9000
e5c99175c5 fixed some build issues on non-windows systems 2013-11-26 23:07:27 -07:00
jp9000
56034fd9ac made a workaround to ensure that translations can be done through our custom system rather than using wx's internal system 2013-11-26 22:22:41 -07:00
jp9000
279b487269 remove sys/stat.h include from obs-app.cpp 2013-11-23 23:40:05 -07:00
jp9000
0aad78819c added initial config file stuff, set up a 'dummy' window to cause the graphics system to persist through window changes 2013-11-23 23:38:52 -07:00
jp9000
7e89ebce46 add a 'wrapper' file for wx 2013-11-22 20:57:24 -07:00
jp9000
27be0a515b do first test drawing in wx 2013-11-22 20:43:48 -07:00
jp9000
eb55b5436f changed header reference to obs-app.hpp 2013-11-22 16:25:38 -07:00
jp9000
4813c89cc6 renamed obs.cpp/hpp 2013-11-22 16:24:54 -07:00