目次→描画ライブラリー参考→
描画画面関連→
SCREENCONTROL←オリジナル・サイト
内部の描画ライブラリ設定を用意する、あるいは、取得します。
構文:
用法:
in the LONG (or INTEGER<32>) version of the sub:
ScreenControl( what [, [ param1 ] [, [ param2 ] [, [ param3 ] [, param4 ]]]] )
or,
ScreenControl( what , param )
in the LONGINT (or INTEGER<64>) version of the sub:
ScreenControl( what , param1 [, [ param2 ] [, [ param3 ] [, param4 ]]] )
or,
ScreenControl( what , param )
パラメータ:
what
実行する関数を指定します。
param1
任意の最初の整数パラメタ。登録で設定する値、または、出口で得られた値を、含んでいます。
param2
2番目の任意の整数パラメタ。登録で設定する値、または、出口で得られた値を、含んでいます。
param3
3番目の任意の整数パラメタ。登録で設定する値、または、出口で得られた値を、含んでいます。
param4
4番目の任意の整数パラメタ。登録で設定する値、または、出口で得られた値を、含んでいます。
param
任意の文字列パラメタ。登録で設定するテキスト、または、出口で得られたテキストを、含んでいます。
記述:
この関数は、内部の GfxLib の状態を設定するか、または取得するために使います。
what パラメタは、どの操作を実行するかを指定します。
状態を設定する操作で、
param* パラメタは、設定すべき値を含まなければなりません。
状態を取得する操作では、
param* は、関数が戻るとき、GfxLib からの戻り値を保存します。
param* パラメタの意味は、
what パラメタに依存します。
param* パラメタで可能な値は、
fbgfx.bi で定義された定数となります。
lang fbでは、
FB Namespace に、格納されるように設定されます。
以下は、
what の内容としてサポートされている項目と、それらに関連しているパラメタと共に書かれるときに定義されている、値のリストです。
サポートされている操作
注意:
取得操作
- GET_WINDOW_POS 現在のウィンドウの位置を、デスクトップ座標で返します。
[OUT] param1 x
[OUT] param2 y
- (*) GET_WINDOW_TITLE プログラム・ウインドウのタイトルを返します。
[OUT] param title
- GET_WINDOW_HANDLE プログラム・ウインドウへのハンドルを返します。
[OUT] param1 handle; this is a HWND in Windows, a "Window" XID in X11
[OUT] param2 display ptr in X11
- (*) GET_DESKTOP_SIZE デスクトップ・サイズを、画素数で返します。
[OUT] param1 width
[OUT] param2 height
- GET_SCREEN_SIZE 現在の画面サイズを、画素数で返します。
[OUT] param1 width
[OUT] param2 height
- GET_SCREEN_DEPTH 現在の描画モードの画面の深さを返します。
[OUT] param1 bits per pixel
- GET_SCREEN_BPP 現在の描画モード BPP を返します。
[OUT] param1 bytes per pixel
- GET_SCREEN_PITCH 現在の描画モード・フレームバッファ・ピッチを、バイト数で返します。
[OUT] param1 pitch
- GET_SCREEN_REFRESH 現在の描画モード・リフレッシュ・レートを、ヘルツで返します。
[OUT] param1 rate
- GET_DRIVER_NAME 現在の描画モード・ドライバー名を返します。
[OUT] param name
- GET_TRANSPARENT_COLOR 現在の描画モード深度の、透明色値を返します。
[OUT] param1 value
- GET_VIEWPORT View (描画) 命令文によって設定される、現在の表示域を、画面座標で返します。
[OUT] param1 x1
[OUT] param2 y1
[OUT] param3 x2
[OUT] param4 y2
- GET_PEN_POS 最後の描画ペン位置を、画面座標で返します。
この位置は、Step キーワードを使って、相対座標をサポートする描画関数で使われます。
[OUT] param1 x
[OUT] param2 y
- GET_COLOR 現在の描画モード色を返します。
[OUT] param1 foreground
[OUT] param2 background
- GET_ALPHA_PRIMITIVES アルファ・チャンネルのサポートを導く基関数が、有効かどうかを返します。
[OUT] param1 アルファ基関数が有効の場合 TRUE (-1) 、そうでない場合 FALSE (0)
- GET_GL_EXTENSIONS サポートしている全ての GL 拡張子の保持している、文字列を返します。OpenGL モードでない場合は、空の文字列を返します。
[OUT] param supported GL extensions
- GET_HIGH_PRIORITY GFX_HIGH_PRIORITY が、Screen (描画) か SCREENRES に渡されたフラグ(旗)で、指定されたかどうかを、返します。
[OUT] param1 higher priority graphics processing enabled
- GET_SCANLINE_SIZE fbgfx ビデオ メモリの各行が現在画面上で占有する走査線の数を返します。
[OUT] param1 scan line size multiplier
- GET_GL_COLOR_BITS OpenGL カラー バッファ専用の現在のビット数を返します。
[OUT] param1 bits
- GET_GL_COLOR_RED_BITS OpenGL カラー バッファの赤コンポーネント専用の現在のビット数を返します。
[OUT] param1 bits
- GET_GL_COLOR_GREEN_BITS OpenGL カラー バッファの緑のコンポーネント専用の現在のビット数を返します。
[OUT] param1 bits
- GET_GL_COLOR_BLUE_BITS OpenGL カラー バッファの青色コンポーネント専用の現在のビット数を返します。
[OUT] param1 bits
- GET_GL_COLOR_ALPHA_BITS OpenGL カラー バッファのアルファ コンポーネント専用の現在のビット数を返します。
[OUT] param1 bits
- GET_GL_DEPTH_BITS OpenGL 深度バッファ専用の現在のビット数を返します
[OUT] param1 bits
- GET_GL_STENCIL_BITS OpenGL ステンシル バッファ専用の現在のビット数を返します。
[OUT] param1 bits
- GET_GL_ACCUM_BITS OpenGL アキュムレーション バッファ専用の現在のビット数を返します
[OUT] param1 bits
- GET_GL_ACCUM_RED_BITS OpenGL アキュムレーション バッファの赤のコンポーネント専用の現在のビット数を返します
[OUT] param1 bits
- GET_GL_ACCUM_GREEN_BITS OpenGL アキュムレーション バッファのグリーン コンポーネント専用の現在のビット数を返します。
[OUT] param1 bits
- GET_GL_ACCUM_BLUE_BITS OpenGL アキュムレーション バッファの青色コンポーネント専用の現在のビット数を返します
[OUT] param1 bits
- GET_GL_ACCUM_ALPHA_BITS OpenGL アキュムレーション バッファのアルファ コンポーネント専用の現在のビット数を返します。
[OUT] param1 bits
- GET_GL_NUM_SAMPLES OpenGL マルチサンプリングに使用される現在のサンプル数を返します
[OUT] param1 samples
- GET_GL_2D_MODE 現在の OpenGL 2D レンダリングを返します
[OUT]
param1:
OGL_2D_NONE No rendering
OGL_2D_MANUAL_SYNC Manual rendering (when
Flip is called)
OGL_2D_AUTO_SYNC Automatic rendering
- GET_GL_SCALE OpenGL 2D レンダリングの現在のズーム率を返します (OpenGL 2D レンダリング モードがSET_GL_2D_MODE によってまだアクティブ化されている場合にのみ許可されます)。
[OUT] param1 zoom factor (0: no rendering)
設定操作
- SET_WINDOW_POS 現在のプログラム・ウィンドウの位置を、デスクトップ座標で設定します。
[IN] param1 x
[IN] param2 y
- (*) SET_WINDOW_TITLE 現在のプログラム・ウィンドウのタイトルを設定します。
これは、WindowTitle( param ) を呼び出すことと同等です。
[IN] param title
- SET_PEN_POS 現在の描画ペン位置を、画面座標で設定します。
この位置は、Step キーワードを使って、相対座標をサポートする、描画関数で使われます。
[IN] param1 x
[IN] param2 y
- (*) SET_DRIVER_NAME 内部の描画ドライバー名を設定して、後続の Screen (描画) か ScreenRes への、呼び出しで使えるようにします。
[IN] param driver name
- SET_ALPHA_PRIMITIVES 基関数描画が、アルファ・チャンネルを使えるように、設定します。
[IN] param1 enabled
- (*) SET_GL_COLOR_BITS OpenGL 色バッファ専用のビット数を、設定します。
[IN] param1 bits
- (*) SET_GL_COLOR_RED_BITS OpenGL 色バッファーの赤色の成分に、専用のビット数を設定します。
[IN] param1 bits
- (*) SET_GL_COLOR_GREEN_BITS OpenGL 色バッファーの緑色の成分に専用のビット数を設定します。
[IN] param1 bits
- (*) SET_GL_COLOR_BLUE_BITS OpenGL 色バッファーの青色の成分に専用のビット数を設定します。
[IN] param1 bits
- (*) SET_GL_COLOR_ALPHA_BITS OpenGL 色バッファーのアルファ成分に専用のビット数を設定します。
[IN] param1 bits
- (*) SET_GL_DEPTH_BITS OpenGL 色深度バッファーに専用のビット数を設定します。
[IN] param1 bits
- (*) SET_GL_STENCIL_BITS OpenGLステンシル・バッファーに、専用のビット数を設定します。
[IN] param1 bits
- (*) SET_GL_ACCUM_BITS OpenGL蓄積バッファに、専用のビット数を設定します。
[IN] param1 bits
- (*) SET_GL_ACCUM_RED_BITS OpenGL蓄積バッファの赤色成分に専用のビット数を用意します。
[IN] param1 bits
- (*) SET_GL_ACCUM_GREEN_BITS OpenGL蓄積バッファの緑色成分に専用のビット数を用意します。
[IN] param1 bits
- (*) SET_GL_ACCUM_BLUE_BITS OpenGL蓄積バッファの青色成分に専用のビット数を用意します。
[IN] param1 bits
- (*) SET_GL_ACCUM_ALPHA_BITS OpenGL蓄積バッファの、アルファ成分に専用のビット数を用意します。
[IN] param1 bits
- (*) SET_GL_NUM_SAMPLES OpenGL マルチ・サンプリングに使われるサンプル数を用意します。
[IN] param1 samples
- (**) SET_GL_2D_MODE OpenGL 2Dレンダリングを設定します。
[IN]
param1:
OGL_2D_NONE No rendering
OGL_2D_MANUAL_SYNC Manual rendering (when
Flip is called)
OGL_2D_AUTO_SYNC Automatic rendering
- (**) SET_GL_SCALE OpenGL 2D レンダリングにズーム係数を適用します(OpenGL 2D レンダリング・モードが、SET_GL_2D_MODE で、まだアクティブになっている場合にのみ、許可されます)
[IN] param1 zoom factor (0: no rendering)
他の操作
- POLL_EVENTS ライブラリが、すべてのイベントをポーリング(問い合わせ調査)するようにします。
つまり、特にキーボード・イベントとマウス・イベントの取得に使われる、システム・イベント・キューをチェックします。
これは Flip(宙返り) が使われていない OpenGL コードに最も役立ちます。Flip(宙返り) は、通常、これらのイベントをポーリングするためです。
例:
注:FreeBASIC 1.08〜 で、SetEnviron を追加しなくても、日本語環境で描画画面が表示されるように改善されました。
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
'' 役に立つ定義のため、fbgfx.bi を含めます
#include
"fbgfx.bi"
'' 型/定数に簡単にアクセスできるように、FB 名前空間を使います
Using FB
Dim e
As EVENT
Dim As Long x0, y0, x, y
Dim As Integer shakes =
0
Dim As Any Ptr img
ScreenRes 320,
200,
32
Print "Click to shake window"
'' window 座標を見つける
ScreenControl GET_WINDOW_POS, x0, y0
Do
If (shakes >
0) Then
'' ウインドウを振動させます
If (shakes >
1) Then
'' ウィンドウを、その元の座標の近くの任意の位置に、移動させます。
x = x0 +
Int(32 *
(Rnd() -
0.
5))
y = y0 +
Int(32 *
(Rnd() -
0.
5))
ScreenControl SET_WINDOW_POS, x, y
Else
'' ウィンドウを、その元の座標に移動させます。
ScreenControl SET_WINDOW_POS, x0, y0
End If
shakes -=
1
End If
If (ScreenEvent(@e
)) Then
Select Case e.type
'' ユーザはマウスボタンを押しました。
Case EVENT_MOUSE_BUTTON_PRESS
If (shakes =
0) Then
'' 20 振動を設定
shakes =
20
'' まわりに震動するために現在のウィンドウ座標を見つけます。
ScreenControl GET_WINDOW_POS, x0, y0
End If
'' ユーザは、ウィンドウを閉じるか、キーを押しました。
Case EVENT_WINDOW_CLOSE, EVENT_KEY_PRESS
'' プログラム終了への出口
Exit Do
End Select
End If
'' 他のプログラムのために、CPU を解放。
Sleep 5
Loop
'' 役に立つ定義のため fbgfx.bi を含める
#include "fbgfx.bi"
Dim As String driver
#ifdef __FB_WIN32__
'' ScreenRes を呼ぶ前に、GDI(Windows のみ)に、描画ドライバーを設定
ScreenControl FB.SET_DRIVER_NAME, "GDI"
#endif
ScreenRes 640, 480
'' 描画ドライバー名を取って来て、ユーザに表示する。
ScreenControl FB.GET_DRIVER_NAME, driver
Print "Graphics driver name: " & driver
'' キー入力を待って、ウィンドウを閉じます。
Sleep
バージョン:
- fbc 1.10.0 〜: GET_SCANLINE_SIZE から GET_GL_SCALE までの 16 個のゲッターが追加されました。
- fbc 1.08.0 より前:
構文:
用法:
ScreenControl( what [, [ param1 ] [, [ param2 ] [, [ param3 ] [, [ param4 ]]]]] )
or,
ScreenControl( what [, param ] )
方言差:
- 別名__Screencontrol参照をつけないと、-lang qb 方言で利用できません。
QBからの違い:
参考:
ページ歴史:2023-07-08 23:52:43
日本語翻訳:WATANABE Makoto、原文著作者:LilloWiki