VLCOpenGLVoutView.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * VLCOpenGLVoutView.h: MacOS X OpenGL provider
  3.  *****************************************************************************
  4.  * Copyright (C) 2001-2007 the VideoLAN team
  5.  * $Id: 406887af3dcbd1c066ab5063af0cb21bc8e2c759 $
  6.  *
  7.  * Authors: Colin Delacroix <colin@zoy.org>
  8.  *          Florian G. Pflug <fgp@phlo.org>
  9.  *          Jon Lech Johansen <jon-vl@nanocrew.net>
  10.  *          Derk-Jan Hartman <hartman at videolan dot org>
  11.  *          Eric Petit <titer@m0k.org>
  12.  *          Benjamin Pracht <bigben at videolan dot org>
  13.  *          Damien Fouilleul <damienf at videolan dot org>
  14.  *
  15.  * This program is free software; you can redistribute it and/or modify
  16.  * it under the terms of the GNU General Public License as published by
  17.  * the Free Software Foundation; either version 2 of the License, or
  18.  * (at your option) any later version.
  19.  *
  20.  * This program is distributed in the hope that it will be useful,
  21.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  22.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  23.  * GNU General Public License for more details.
  24.  *
  25.  * You should have received a copy of the GNU General Public License
  26.  * along with this program; if not, write to the Free Software
  27.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  28.  *****************************************************************************/
  29. #import <Cocoa/Cocoa.h>
  30. #include <OpenGL/OpenGL.h>
  31. #include <OpenGL/gl.h>
  32. #include <vlc_common.h>
  33. /* Entry point */
  34. int  cocoaglvoutviewInit( vout_thread_t * p_vout );
  35. void cocoaglvoutviewEnd( vout_thread_t * p_vout );
  36. int  cocoaglvoutviewManage( vout_thread_t * p_vout );
  37. int  cocoaglvoutviewControl( vout_thread_t *p_vout, int i_query, va_list args );
  38. void cocoaglvoutviewSwap( vout_thread_t * p_vout );
  39. int  cocoaglvoutviewLock( vout_thread_t * p_vout );
  40. void cocoaglvoutviewUnlock( vout_thread_t * p_vout );
  41. /* To commmunicate with the VLC.framework */
  42. @protocol VLCOpenGLVoutEmbedding
  43. - (void)addVoutSubview:(NSView *)view;
  44. - (void)removeVoutSubview:(NSView *)view;
  45. - (void)enterFullscreen;
  46. - (void)leaveFullscreen;
  47. - (BOOL)stretchesVideo;
  48. - (void)setOnTop: (BOOL)ontop; /* Do we really want that in protocol? */
  49. @end
  50. /* VLCOpenGLVoutView */
  51. @interface VLCOpenGLVoutView : NSOpenGLView
  52. {
  53.     id <VLCOpenGLVoutEmbedding> container;
  54.     vout_thread_t * p_vout;
  55.     NSLock        * objectLock;
  56. }
  57. /* Init a new gl view and register it to both the framework and the
  58.  * vout_thread_t. Must be called from main thread */
  59. + (void) autoinitOpenGLVoutViewIntVoutWithContainer: (NSData *) args;
  60. - (id) initWithVout: (vout_thread_t *) vout container: (id <VLCOpenGLVoutEmbedding>) container;
  61. - (void) detachFromVout;
  62. - (id <VLCOpenGLVoutEmbedding>) container;
  63. - (void) reshape;
  64. - (void) update;
  65. - (void) drawRect: (NSRect) rect;
  66. @end