FAQ  •  Login

Bink videos in game

<<

joff

User avatar

First Sergeant
First Sergeant

Posts: 787

Joined: Sat Oct 25, 2008 2:44 am

Location: Reading / UK

Post Fri Mar 06, 2009 12:05 pm

Re: Bink videos in game

wow i missed this convo i should check more often
Programmer / Web Designer / Server Admin
www.joffcom.net
www.pontification.net
<<

Limpet

User avatar

Specialist
Specialist

Posts: 160

Joined: Fri Feb 27, 2009 12:44 am

Location: NC

Post Fri Mar 06, 2009 12:17 pm

Re: Bink videos in game

I didn't get too far looking at the code, but I did find there is a VideoPanel class under client. It must not have ever been used before because the schemes it uses are resource/VideoPanelScheme.res and resource/UI/VideoPanel.res which I couldn't find anywhere.

But I did find some interesting things about how Valve handle videos and how there is an easier way to get bink and avi videos to play in the game. Though, from looking at VideoPanel it's meant to play as a full screen video and as the only audio source so I'll have to tweak it to get it to do what I want.
<<

Craziestdan

Warrant Officer 1
Warrant Officer 1

Posts: 1043

Joined: Wed Mar 26, 2008 2:36 pm

Post Fri Mar 06, 2009 3:49 pm

Re: Bink videos in game

(source 2007 binaries.gcf)

VideoPanelScheme.res:

  Code:
///////////////////////////////////////////////////////////
// Tracker scheme resource file
//
// sections:
//      Colors         - all the colors used by the scheme
//      BaseSettings   - contains settings for app to use to draw controls
//      Fonts         - list of all the fonts used by app
//      Borders         - description of all the borders
//
///////////////////////////////////////////////////////////
Scheme
{
   //////////////////////// COLORS ///////////////////////////
   // color details
   // this is a list of all the colors used by the scheme
   Colors
   {
      // base colors
      "White"            "255 255 255 255"
      "OffWhite"         "216 216 216 255"
      "DullWhite"         "142 142 142 255"
      "Orange"         "255 155 0 255"
      "TransparentBlack"      "0 0 0 128"
      "Black"            "0 0 0 255"

      "Blank"            "0 0 0 0"
   }

   ///////////////////// BASE SETTINGS ////////////////////////
   //
   // default settings for all panels
   // controls use these to determine their settings
   BaseSettings
   {
      // vgui_controls color specifications
      Border.Bright               "200 200 200 196"   // the lit side of a control
      Border.Dark                  "40 40 40 196"      // the dark/unlit side of a control
      Border.Selection            "0 0 0 196"         // the additional border color for displaying the default/selected button

      Button.TextColor            "White"
      Button.BgColor               "Blank"
      Button.ArmedTextColor         "White"
      Button.ArmedBgColor            "Blank"            [$WIN32]
      Button.ArmedBgColor            "190 115 0 255"      [$X360]
      Button.DepressedTextColor      "White"
      Button.DepressedBgColor         "Blank"
      Button.FocusBorderColor         "Black"
      
      CheckButton.TextColor         "OffWhite"
      CheckButton.SelectedTextColor   "White"
      CheckButton.BgColor            "TransparentBlack"
      CheckButton.Border1           "Border.Dark"       // the left checkbutton border
      CheckButton.Border2           "Border.Bright"      // the right checkbutton border
      CheckButton.Check            "White"            // color of the check itself

      ComboBoxButton.ArrowColor      "DullWhite"
      ComboBoxButton.ArmedArrowColor   "White"
      ComboBoxButton.BgColor         "Blank"
      ComboBoxButton.DisabledBgColor   "Blank"

      Frame.TitleTextInsetX         16
      Frame.ClientInsetX            8
      Frame.ClientInsetY            6
      Frame.BgColor               "160 160 160 128"   [$WIN32]
      Frame.BgColor               "80 80 80 192"      [$X360]
      Frame.OutOfFocusBgColor         "160 160 160 32"   [$WIN32]
      Frame.OutOfFocusBgColor         "80 80 80 192"      [$X360]
      Frame.FocusTransitionEffectTime   "0.0"                     // time it takes for a window to fade in/out on focus/out of focus
      Frame.TransitionEffectTime      "0.0"            [$WIN32]   // time it takes for a window to fade in/out on open/close
      Frame.TransitionEffectTime      "0.0"            [$X360]      // time it takes for a window to fade in/out on open/close
      Frame.AutoSnapRange            "0"
      FrameGrip.Color1            "200 200 200 196"
      FrameGrip.Color2            "0 0 0 196"
      FrameTitleButton.FgColor      "200 200 200 196"
      FrameTitleButton.BgColor      "Blank"
      FrameTitleButton.DisabledFgColor   "255 255 255 192"
      FrameTitleButton.DisabledBgColor   "Blank"
      FrameSystemButton.FgColor      "Blank"
      FrameSystemButton.BgColor      "Blank"
      FrameSystemButton.Icon         ""
      FrameSystemButton.DisabledIcon   ""
      FrameTitleBar.Font            "UiBold"      [$WIN32]
      FrameTitleBar.Font            "DefaultLarge"   [$WIN32]
      FrameTitleBar.TextColor         "White"
      FrameTitleBar.BgColor         "Blank"
      FrameTitleBar.DisabledTextColor   "255 255 255 192"
      FrameTitleBar.DisabledBgColor   "Blank"

      GraphPanel.FgColor            "White"
      GraphPanel.BgColor            "TransparentBlack"

      Label.TextDullColor            "DullWhite"
      Label.TextColor               "OffWhite"
      Label.TextBrightColor         "White"
      Label.SelectedTextColor         "White"
      Label.BgColor               "Blank"
      Label.DisabledFgColor1         "117 117 117 255"
      Label.DisabledFgColor2         "30 30 30 255"

      ListPanel.TextColor               "OffWhite"
      ListPanel.TextBgColor            "Blank"
      ListPanel.BgColor               "TransparentBlack"
      ListPanel.SelectedTextColor         "Black"
      ListPanel.SelectedBgColor         "Orange"
      ListPanel.SelectedOutOfFocusBgColor   "255 155 0 128"
      ListPanel.EmptyListInfoTextColor   "OffWhite"

      Menu.TextColor               "White"
      Menu.BgColor               "160 160 160 64"
      Menu.ArmedTextColor            "Black"
      Menu.ArmedBgColor            "Orange"
      Menu.TextInset               "6"

      Panel.FgColor               "DullWhite"
      Panel.BgColor               "Blank"

      ProgressBar.FgColor            "White"
      ProgressBar.BgColor            "TransparentBlack"

      PropertySheet.TextColor         "OffWhite"
      PropertySheet.SelectedTextColor   "White"
      PropertySheet.TransitionEffectTime   "0.25"   // time to change from one tab to another

      RadioButton.TextColor         "DullWhite"
      RadioButton.SelectedTextColor   "White"

      RichText.TextColor            "OffWhite"
      RichText.BgColor            "TransparentBlack"
      RichText.SelectedTextColor      "Black"
      RichText.SelectedBgColor      "Orange"

      ScrollBar.Wide               17

      ScrollBarButton.FgColor            "White"
      ScrollBarButton.BgColor            "Blank"
      ScrollBarButton.ArmedFgColor      "White"
      ScrollBarButton.ArmedBgColor      "Blank"
      ScrollBarButton.DepressedFgColor   "White"
      ScrollBarButton.DepressedBgColor   "Blank"

      ScrollBarSlider.FgColor            "Blank"         // nob color
      ScrollBarSlider.BgColor            "255 255 255 64"   // slider background color

      SectionedListPanel.HeaderTextColor   "White"
      SectionedListPanel.HeaderBgColor   "Blank"
      SectionedListPanel.DividerColor      "Black"
      SectionedListPanel.TextColor      "DullWhite"
      SectionedListPanel.BrightTextColor   "White"
      SectionedListPanel.BgColor         "TransparentBlack"
      SectionedListPanel.SelectedTextColor         "Black"
      SectionedListPanel.SelectedBgColor            "Orange"
      SectionedListPanel.OutOfFocusSelectedTextColor   "Black"
      SectionedListPanel.OutOfFocusSelectedBgColor   "255 155 0 128"

      Slider.NobColor            "108 108 108 255"
      Slider.TextColor         "180 180 180 255"
      Slider.TrackColor         "31 31 31 255"
      Slider.DisabledTextColor1   "117 117 117 255"
      Slider.DisabledTextColor2   "30 30 30 255"

      TextEntry.TextColor         "OffWhite"
      TextEntry.BgColor         "TransparentBlack"
      TextEntry.CursorColor      "OffWhite"
      TextEntry.DisabledTextColor   "DullWhite"
      TextEntry.DisabledBgColor   "Blank"
      TextEntry.SelectedTextColor   "Black"
      TextEntry.SelectedBgColor   "Orange"
      TextEntry.OutOfFocusSelectedBgColor   "255 155 0 128"
      TextEntry.FocusEdgeColor   "0 0 0 196"

      ToggleButton.SelectedTextColor   "White"

      Tooltip.TextColor         "0 0 0 196"
      Tooltip.BgColor            "Orange"

      TreeView.BgColor         "TransparentBlack"

      WizardSubPanel.BgColor      "Blank"

      // scheme-specific colors
      MainMenu.TextColor         "White"            [$WIN32]
      MainMenu.TextColor         "200 200 200 255"   [$X360]
      MainMenu.ArmedTextColor      "200 200 200 255"   [$WIN32]
      MainMenu.ArmedTextColor      "White"            [$X360]
      MainMenu.DepressedTextColor   "192 186 80 255"
      MainMenu.MenuItemHeight      "30"            [$WIN32]
      MainMenu.MenuItemHeight      "32"            [$X360]
      MainMenu.Inset            "32"
      MainMenu.Backdrop         "0 0 0 156"

      Console.TextColor         "OffWhite"
      Console.DevTextColor      "White"

      NewGame.TextColor         "White"
      NewGame.FillColor         "0 0 0 255"
      NewGame.SelectionColor      "Orange"         [$WIN32]
      NewGame.SelectionColor      "0 0 0 255"         [$X360]
      NewGame.DisabledColor      "128 128 128 196"
   }

   //////////////////////// BITMAP FONT FILES /////////////////////////////
   //
   // Bitmap Fonts are ****VERY*** expensive static memory resources so they are purposely sparse
   BitmapFontFiles
   {
      // UI buttons, custom font, (256x64)
      "Buttons"      "materials/vgui/fonts/buttons_32.vbf"
   }

   //////////////////////// FONTS /////////////////////////////
   //
   // describes all the fonts
   Fonts
   {
      // fonts are used in order that they are listed
      // fonts listed later in the order will only be used if they fulfill a range not already filled
      // if a font fails to load then the subsequent fonts will replace
      // fonts are used in order that they are listed
      "DebugFixed"
      {
         "1"
         {
            "name"      "Courier New"
            "tall"      "10"
            "weight"   "500"
            "antialias" "1"
         }
      }
      // fonts are used in order that they are listed
      "DebugFixedSmall"
      {
         "1"
         {
            "name"      "Courier New"
            "tall"      "7"
            "weight"   "500"
            "antialias" "1"
         }
      }
      "DefaultFixedOutline"
      {
         "1"
         {
            "name"      "Lucida Console"
            "tall"      "10"
            "weight"   "0"
            "outline"   "1"
         }
      }
      "Default"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "16"
            "weight"   "500"
         }
      }
      "DefaultBold"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "16"
            "weight"   "1000"
         }
      }
      "DefaultUnderline"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "16"
            "weight"   "500"
            "underline" "1"
         }
      }
      "DefaultSmall"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "12"
            "weight"   "0"
         }
      }
      "DefaultSmallDropShadow"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "13"
            "weight"   "0"
            "dropshadow" "1"
         }
      }
      "DefaultVerySmall"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "12"
            "weight"   "0"
         }
      }

      "DefaultLarge"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "18"
            "weight"   "0"
         }
      }
      "UiBold"
      {
         "1"   [$WIN32]
         {
            "name"      "Tahoma"
            "tall"      "12"
            "weight"   "1000"
         }
         "1"   [$X360]
         {
            "name"      "Tahoma"
            "tall"      "24"
            "weight"   "2000"
            "outline" "1"
         }
      }
      "ChapterTitle"   [$X360]
      {
         "1"
         {
            "name"         "Tahoma"
            "tall"         "20"
            "tall_hidef"   "28"
            "weight"      "2000"
            "outline"      "1"
         }
      }
      "ChapterTitleBlur"   [$X360]
      {
         "1"
         {
            "name"         "Tahoma"
            "tall"         "20"
            "tall_hidef"   "28"
            "weight"      "2000"
            "blur"         "3"
            "blur_hidef"   "5"
         }
      }
      "MenuLarge"
      {
         "1"   [$WIN32]
         {
            "name"      "Verdana"
            "tall"      "16"
            "weight"   "600"
            "antialias" "1"
         }
         "1"   [$X360]
         {
            "name"      "Verdana"
            "tall"      "20"
            "weight"   "1200"
            "antialias" "1"
            "outline" "1"
         }
      }
      GameUIButtons
      {
         "1"   [$X360]
         {
            "bitmap"      "1"
            "name"         "Buttons"
            "scalex"      "0.8"
            "scaley"      "0.8"
            "scalex_hidef"   "1.0"
            "scaley_hidef"   "1.0"
         }
      }
      "ConsoleText"
      {
         "1"
         {
            "name"      "Lucida Console"
            "tall"      "10"
            "weight"   "500"
         }
      }

      // this is the symbol font
      "Marlett"
      {
         "1"
         {
            "name"      "Marlett"
            "tall"      "14"
            "weight"   "0"
            "symbol"   "1"
         }
      }

      "Trebuchet24"
      {
         "1"
         {
            "name"      "Trebuchet MS"
            "tall"      "24"
            "weight"   "900"
         }
      }

      "Trebuchet20"
      {
         "1"
         {
            "name"      "Trebuchet MS"
            "tall"      "20"
            "weight"   "900"
         }
      }

      "Trebuchet18"
      {
         "1"
         {
            "name"      "Trebuchet MS"
            "tall"      "18"
            "weight"   "900"
         }
      }

      // HUD numbers
      // We use multiple fonts to 'pulse' them in the HUD, hence the need for many of near size
      "HUDNumber"
      {
         "1"
         {
            "name"      "Trebuchet MS"
            "tall"      "40"
            "weight"   "900"
         }
      }
      "HUDNumber1"
      {
         "1"
         {
            "name"      "Trebuchet MS"
            "tall"      "41"
            "weight"   "900"
         }
      }
      "HUDNumber2"
      {
         "1"
         {
            "name"      "Trebuchet MS"
            "tall"      "42"
            "weight"   "900"
         }
      }
      "HUDNumber3"
      {
         "1"
         {
            "name"      "Trebuchet MS"
            "tall"      "43"
            "weight"   "900"
         }
      }
      "HUDNumber4"
      {
         "1"
         {
            "name"      "Trebuchet MS"
            "tall"      "44"
            "weight"   "900"
         }
      }
      "HUDNumber5"
      {
         "1"
         {
            "name"      "Trebuchet MS"
            "tall"      "45"
            "weight"   "900"
         }
      }
      "DefaultFixed"
      {
         "1"
         {
            "name"      "Lucida Console"
            "tall"      "10"
            "weight"   "0"
         }
//         "1"
//         {
//            "name"      "FixedSys"
//            "tall"      "20"
//            "weight"   "0"
//         }
      }

      "DefaultFixedDropShadow"
      {
         "1"
         {
            "name"      "Lucida Console"
            "tall"      "10"
            "weight"   "0"
            "dropshadow" "1"
         }
//         "1"
//         {
//            "name"      "FixedSys"
//            "tall"      "20"
//            "weight"   "0"
//         }
      }

      "CloseCaption_Normal"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "16"
            "weight"   "500"
         }
      }
      "CloseCaption_Italic"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "16"
            "weight"   "500"
            "italic"   "1"
         }
      }
      "CloseCaption_Bold"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "16"
            "weight"   "900"
         }
      }
      "CloseCaption_BoldItalic"
      {
         "1"
         {
            "name"      "Tahoma"
            "tall"      "16"
            "weight"   "900"
            "italic"   "1"
         }
      }

      TitleFont
      {
         "1"
         {
            "name"      "HalfLife2"
            "tall"      "72"
            "weight"   "400"
            "antialias"   "1"
            "custom"   "1"
         }
      }

      TitleFont2
      {
         "1"
         {
            "name"      "HalfLife2"
            "tall"      "120"
            "weight"   "400"
            "antialias"   "1"
            "custom"   "1"
         }
      }

      AppchooserGameTitleFont   [$X360]
      {
         "1"
         {
            "name"         "Trebuchet MS"
            "tall"         "16"
            "tall_hidef"   "24"
            "weight"      "900"
            "antialias"      "1"
         }
      }

      AppchooserGameTitleFontBlur   [$X360]
      {
         "1"
         {
            "name"         "Trebuchet MS"
            "tall"         "16"
            "tall_hidef"   "24"
            "weight"      "900"
            "blur"         "3"
            "blur_hidef"   "5"
            "antialias"      "1"
         }
      }
   }

   //
   //////////////////// BORDERS //////////////////////////////
   //
   // describes all the border types
   Borders
   {
      BaseBorder      DepressedBorder
      ButtonBorder   RaisedBorder
      ComboBoxBorder   DepressedBorder
      MenuBorder      RaisedBorder
      BrowserBorder   DepressedBorder
      PropertySheetBorder   RaisedBorder

      FrameBorder
      {
         // rounded corners for frames
         "backgroundtype" "2"
      }

      DepressedBorder
      {
         "inset" "0 0 1 1"
         Left
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 1"
            }
         }

         Right
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "1 0"
            }
         }

         Top
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 0"
            }
         }

         Bottom
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 0"
            }
         }
      }
      RaisedBorder
      {
         "inset" "0 0 1 1"
         Left
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 1"
            }
         }

         Right
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 0"
            }
         }

         Top
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 1"
            }
         }

         Bottom
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 0"
            }
         }
      }
      
      TitleButtonBorder
      {
         "backgroundtype" "0"
      }

      TitleButtonDisabledBorder
      {
         "backgroundtype" "0"
      }

      TitleButtonDepressedBorder
      {
         "backgroundtype" "0"
      }

      ScrollBarButtonBorder
      {
         "inset" "2 2 0 0"
         Left
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 1"
            }
         }

         Right
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "1 0"
            }
         }

         Top
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 0"
            }
         }

         Bottom
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 0"
            }
         }
      }
      
      ScrollBarButtonDepressedBorder
      {
         "inset" "2 2 0 0"
         Left
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 1"
            }
         }

         Right
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "1 0"
            }
         }

         Top
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 0"
            }
         }

         Bottom
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 0"
            }
         }
      }

      TabBorder
      {
         "inset" "0 0 1 1"
         Left
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 1"
            }
         }

         Right
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "1 0"
            }
         }

         Top
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 0"
            }
         }

      }

      TabActiveBorder
      {
         "inset" "0 0 1 0"
         Left
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 0"
            }
         }

         Right
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "1 0"
            }
         }

         Top
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 0"
            }
         }

      }


      ToolTipBorder
      {
         "inset" "0 0 1 0"
         Left
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 0"
            }
         }

         Right
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "1 0"
            }
         }

         Top
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 0"
            }
         }

         Bottom
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 0"
            }
         }
      }

      // this is the border used for default buttons (the button that gets pressed when you hit enter)
      ButtonKeyFocusBorder
      {
         "inset" "0 0 1 1"
         Left
         {
            "1"
            {
               "color" "Border.Selection"
               "offset" "0 0"
            }
            "2"
            {
               "color" "Border.Bright"
               "offset" "0 1"
            }
         }
         Top
         {
            "1"
            {
               "color" "Border.Selection"
               "offset" "0 0"
            }
            "2"
            {
               "color" "Border.Bright"
               "offset" "1 0"
            }
         }
         Right
         {
            "1"
            {
               "color" "Border.Selection"
               "offset" "0 0"
            }
            "2"
            {
               "color" "Border.Dark"
               "offset" "1 0"
            }
         }
         Bottom
         {
            "1"
            {
               "color" "Border.Selection"
               "offset" "0 0"
            }
            "2"
            {
               "color" "Border.Dark"
               "offset" "0 0"
            }
         }
      }

      ButtonDepressedBorder
      {
         "inset" "2 1 1 1"
         Left
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 1"
            }
         }

         Right
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "1 0"
            }
         }

         Top
         {
            "1"
            {
               "color" "Border.Dark"
               "offset" "0 0"
            }
         }

         Bottom
         {
            "1"
            {
               "color" "Border.Bright"
               "offset" "0 0"
            }
         }
      }
   }

   //////////////////////// CUSTOM FONT FILES /////////////////////////////
   //
   // specifies all the custom (non-system) font files that need to be loaded to service the above described fonts
   CustomFontFiles
   {
      "1"      "resource/HALFLIFE2.ttf"
      "2"      "resource/HL2EP2.ttf"      
   }
}


I don't see a VideoPanel.res though... It's most likely in one of the other base GCFs. You shouldn't need it though, you can make your own. We got out own panel made in our mod and aren't using any .res files...

You're best off joining the HL coders:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

It's like a email forum. Sumbit your own thread (email) and the guy who did the video panel in project valkyrie who happens to work at Valve is one of the regulars on the HL coders, so you'll most certainly be able to get help from him / other coders.
<<

Limpet

User avatar

Specialist
Specialist

Posts: 160

Joined: Fri Feb 27, 2009 12:44 am

Location: NC

Post Fri Mar 06, 2009 4:55 pm

Re: Bink videos in game

Very nice, thanks so much Craziestdan.
<<

vecima

User avatar

Type 3
Type 3

Posts: 2409

Joined: Sun Jun 24, 2007 7:32 pm

Location: New Jersey

Post Fri Mar 06, 2009 7:00 pm

Re: Bink videos in game

I don't know why I never joined the HLCoders list after all this time...

I'm joining too :t3lol:
<<

Limpet

User avatar

Specialist
Specialist

Posts: 160

Joined: Fri Feb 27, 2009 12:44 am

Location: NC

Post Tue Mar 10, 2009 9:47 pm

Re: Bink videos in game

Ok, so, another question and this is kind of related to my other question (which I think I kind of figured out).

Ok, so we have ibik.h which defines some constants for the bink video like so:

  Code:
//-----------------------------------------------------------------------------
// Handle to an BINK
//-----------------------------------------------------------------------------
typedef unsigned short BIKHandle_t;
enum
{
   BIKHANDLE_INVALID = (BIKHandle_t)~0
};


//-----------------------------------------------------------------------------
// Handle to an BINK material
//-----------------------------------------------------------------------------
typedef unsigned short BIKMaterial_t;
enum
{
   BIKMATERIAL_INVALID = (BIKMaterial_t)~0
};


BINKHANDLE_INVALID becomes a unsigned short filled with 1's as well as BINKMATERIAL_INVALID, so I would assume these both become some big positive numbers. The enum defines them as opposed to writing #define?

Now the part I don't get. Flipping over to vgui_video.cpp:

  Code:
bool VideoPanel::BeginPlayback( const char *pFilename )
{
...
   // Destroy any previously allocated video
   if ( m_BIKHandle != BIKHANDLE_INVALID )
   {
      bik->DestroyMaterial( m_BIKHandle );
      m_BIKHandle = BIKHANDLE_INVALID;
   }

   // Load and create our BINK video
   m_BIKHandle = bik->CreateMaterial( "VideoBIKMaterial", pFilename, "GAME" );
   if ( m_BIKHandle == BIKHANDLE_INVALID )
      return false;
...


Limpet wrote:So, we have m_BIKHandle which was defined in vgui_video.h as BIKMaterial_t, which came from ibik.h, and if it's not equal to that big number, destroy the material by handle, then set the two equal to each other. But, the next few lines down we test if the two are equal and if they are then return false. I don't get it, does that mean we can't make anymore videos after you destroy the panel? The destructor also sets the two equal to each other. Is this something that must be implemented when I make my own panels?


Ok, so as I was writing that up, I finally understood what was happening (CreateMaterial should make BIKMaterial_t = 0). Now, I have a new question and that is: can you only have 1 video at a time? It seems so, since you can only have one handle at a time. And looking at vguiscreen I guess you can have more than one since it doesn't destroy itself everytime a new video is created.

I just keep answering my questions, haha. But feel free to read through my assumptions and tell me if I've got the wrong thinking somewhere.
<<

Kenny

User avatar

Warrant Officer 1
Warrant Officer 1

Posts: 1016

Joined: Sun Mar 16, 2008 3:43 am

Post Mon Jul 26, 2010 5:38 pm

Re: Bink videos in game

This actually may be the solution to my cutscene ideas- perhaps if I wanted to do a splitscreen effect, I could record seperate sets of camera angles in engine to an AVI or something with Fraps, then edit it with a different application (such as Adobe Premiere), then somehow convert it to .bink?
Image
<<

joff

User avatar

First Sergeant
First Sergeant

Posts: 787

Joined: Sat Oct 25, 2008 2:44 am

Location: Reading / UK

Post Tue Jul 27, 2010 12:21 pm

Re: Bink videos in game

in theory you could do splitscreen video im not 100% sure on how but its doiable
Programmer / Web Designer / Server Admin
www.joffcom.net
www.pontification.net
<<

Nicadeamas

User avatar

Captain
Captain

Posts: 2606

Joined: Mon Jun 25, 2007 11:38 am

Location: Earth

Post Tue Jul 27, 2010 12:57 pm

Re: Bink videos in game

.
That would be neat.
<<

joff

User avatar

First Sergeant
First Sergeant

Posts: 787

Joined: Sat Oct 25, 2008 2:44 am

Location: Reading / UK

Post Wed Jul 28, 2010 3:42 am

Re: Bink videos in game

i will have a quick look into it tomorow as i have a day off work shouldt take too much effort to look at it
Programmer / Web Designer / Server Admin
www.joffcom.net
www.pontification.net
Previous

Return to Programming

Who is online

Users browsing this forum: No registered users and 1 guest

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.