sdl的縮放問題

SDL是一種既是開源的,也是跨平臺的多媒體開發包,在各種平臺上應用很廣,經常和FFMPEG等解碼器同時使用。對于在windows mobile等缺乏通用播放器的平臺來說,是一種很好的選擇。
網上很多代碼,介紹SDL的用法,主要需要注意的情況有3種:
第一: 綁定播放窗口問題:
char sdl_var[128];??
? ?sprintf(sdl_var, "SDL_WINDOWID=0x%lx",?m_hWnd?);//主窗口句柄?
? ?SDL_putenv(sdl_var);? ?char *myvalue = SDL_getenv("SDL_WINDOWID");
這端代碼,需要放在播放窗口初始化之前,否則,容易造成全屏。

第二:SDL本身響應窗口菜單的問題
SDL官方提供以下代碼響應窗口菜單:
while(1) {
? ?? ???SDL_WaitEvent(&event);
? ?{
? ???case??

? ?}

? ?}
但也可以我們在程序里面重新初始化并顯示新菜單,就可以不用這種辦法,直接用我們自己的程序響應菜單。
第三:關于縮放:
網上很多代碼容易誤導人。
把SDL_SetVideoMode和SDL_CreateYUVOverlay的參數都設置成一樣的,這種辦法導致屏幕圖象縮放顯示不正常,正確的方法 應該是:SDL_SetVideoMode的參數顯示新的顯示大小,而SDL_CreateYUVOverlay(只需建立一 次,SDL_SetVideoMode更換時,不需要跟著更換)的參數則是圖片的原始大小?。
而在SDL_DisplayYUVOverlay中用到的SDL_Rect,大小則和SDL_SetVideoMode一樣,也就是新的顯示大小。

本文原創,轉載請注明出處和作者,謝謝。

轉載于:https://www.cnblogs.com/mao0504/p/5619108.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257001.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257001.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257001.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu系統盤制作

1、首先打開UltraISO軟件,盡量下載最新版的,小編曾用某個舊版的UltraISO,制作的安裝盤,不能不能識別磁盤,安裝失敗! 2、點擊工具欄中的第二個打開鏡像文件工具,如圖紅色方框標志按鈕,然后在打開…

RH131 網絡配置

ip addr show 查看當前網絡地址 ip link show 查看網絡鏈接狀態 ip -s link show 查看網卡統計信息 ip addr add 192.168.0.154 添加ip地址 ip link dev eth0 down 禁用ip地址 網卡的配置文件/etc/sysconfig/network-scripts/ifcfg-ethx 自動專用地址:169.254.*.* …

學習筆記02:直播串講02

1.基于模型的學習 根據以往的學習經驗,建立起輸入輸出的模型,然后預測輸入,并且將輸入帶入到模型中,進而預測出輸出的結果,這種學習稱為基于模型的學習 2.機器學習的過程 1)數據收集:通過爬蟲、…

如何將Pcm格式的音頻文件轉換成Wave格式的文件

最近在做一款變聲App,其中就用到了將pcm格式轉wave格式,下面貼出源代碼,希望帶有需求的童鞋有幫助!!!這里是c語言寫的,也可以用java實現。當然java調用native函數要用到jni技術。具體jni技術自己…

Dojo儀表板

Dojo它提供了一個良好的儀表板顯示器&#xff0c;的影響&#xff0c;如以下&#xff1a; <!DOCTYPE html> <html> <head><title>Dojo儀表盤</title><meta charset"utf-8"><script src"http://192.168.240.186/arcgis_js…

在新的固態硬盤只裝ubuntu16.04系統,重啟后無啟動項解決方案

方法一&#xff1a;不要使用UltraISO制作ubutnu系統啟動盤&#xff0c;需要用UniversalUSBInstaller &#xff08;這個是Ubuntu官方推薦的制作u盤的軟件&#xff09; 不用UltraISO這個是因為&#xff0c;裝完ubuntu系統后&#xff0c;啟動的時候只有黑屏幕的光標&#xff0c;是…

學習筆記(22):Python網絡編程并發編程-什么是線程

立即學習:https://edu.csdn.net/course/play/24458/296436?utm_sourceblogtoedu 什么是線程&#xff1f;&#xff08;以地鐵為例&#xff09; 1.北京地鐵、上海地鐵、廣州地鐵稱之為三個不同的進程&#xff1b;而上海1號線上海3號線稱之為線程&#xff1b; 2.進程是資源單位&a…

流程圖制作在云上 https://www.processon.com/

流程圖制作在云上 &#xff1a; https://www.processon.com/ 轉載于:https://www.cnblogs.com/hopesun/p/4661429.html

機械硬盤變成了動態磁盤怎么壓縮不了該磁盤

由于我的電腦原裝是win8系統&#xff0c;自從win8系統以及以后的win10系統&#xff0c;磁盤管理方式變成了兩種&#xff0c;1是基本磁盤管理&#xff1b;2是動態磁盤管理 由于本人想要在機械硬盤上壓縮一個可用的綠色空間出來安裝ubuntu系統&#xff1b;由于本人的三星機械100…

Exchange2013恢復已刪除用戶郵箱

上一篇文章我們講到了如何恢復已禁用的郵箱。但是在微軟的Exchange中&#xff0c;禁用郵箱和刪除郵箱畢竟是兩個截然不同的概念&#xff0c;這篇文章我們就來看看如何恢復已刪除的郵箱。 1.依然是新建用戶“張三”&#xff0c;然后給其發一封郵件&#xff0c;作為后續郵箱數據恢…

學習筆記(23):Python網絡編程并發編程-開啟線程的兩種方式

立即學習:https://edu.csdn.net/course/play/24458/296437?utm_sourceblogtoedu 開啟線程的兩種方法&#xff1a;threading.Thread 1.方法一&#xff1a; from threading import Thread import time#方式一&#xff1a;直接使用thrending下的Thread類 def mythread(name):pri…

調用異步服務時的超時處理

主線程調用異步服務后&#xff0c;通過設定主線程的等待時間來進行超時處理。Demo如下&#xff1a;AsyncTask.cs 1 using System;2 using System.Threading.Tasks;3 using MyCSharp.ExternalService;4 5 namespace MyCSharp.Grammas6 {7 public class AsyncTask8 {9 …

linux下一個apache+tomcat負載均衡和集群

先說一下我的環境 一個ubuntu虛擬機&#xff0c; 一個apache2.2示例 兩tomcat1.7示例 1.安裝apacheserver sudo apt-get install apache2假設要重新啟動的話&#xff0c;執行命令&#xff1a; sudo /etc/init.d/apache2 restart ubuntu下的apache會默認創建路徑/var/www&#x…

JS實現css屬性動畫效果

html代碼 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>css屬性運動框架</title><style>body,div{margin: 0;padding: 0;}ul,li{list-style: none;}ul li{width: 200px;height: 100px;background: yellowgre…

學習筆記(24):Python網絡編程并發編程-進程與線程的區別

立即學習:https://edu.csdn.net/course/play/24458/296438?utm_sourceblogtoedu 線程與進程的區別&#xff1a; 1.消耗區別&#xff1a;進程>線程 1&#xff09;進程運行結果 #進程運行 from multiprocessing import Process def task(name):print("我是%s"%na…

Codeforces Beta Round #1

A /*************************************************************************> File Name: A.cpp> Author: opas_chenxin> Mail: 1017370773qq.com > Created Time: 2016年05月06日 星期五 02時22分23秒 ************************************************…

windows系統中創建線程常用哪幾個函數,有什么區別?

windows系統中創建線程常用哪幾個函數&#xff1f; 在windows系統中創建線程的函數有&#xff1a; CreadThread&#xff0c;AfxBeginThread&#xff0c;_beginthread&#xff0c;_beginthreadex。 他們的區別在于使用的場景不同。 CreateThread是Windows的API函數(SDK函數的標…

java.lang.String小測試

還記得java.lang.String么&#xff0c;如果現在給你一個小程序&#xff0c;你能說出它的結果么 1 public static String ab(String a){2 return a "b";3 }4 5 public static void testAb(){6 String x "a";7 ab…

Oracle傳輸表空間

一、簡介 可傳輸表空間(還有個集)最大的優勢是其速度比export/import或unload/load要快的多。因為可傳輸表空間主要是復制數據文件到目標路徑&#xff0c;然后再使用export/import或Data Pump export/import等應用僅導出/導入表空間對象的元數據到新數據庫。 &#xff08;1&…

進程控制塊PCB結構體 task_struct 描述

進程控制塊&#xff0c;英文名&#xff08;Processing Control Block&#xff09;&#xff0c;簡稱 PCB 。 進程控制塊是系統為了管理進程設置的一個專門的數據結構&#xff0c;主要表示進程狀態。 每一個進程都對應一個PCB來維護進程相關的信息&#xff1b; 在Linux中&#xf…