Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.1 ) |
- 名前:管理人 日時:2025/02/13 01:17
> GIOS.Device.Screen.SubBackBufferTexture が表画面全体のテクスチャ(?)と思いますが、
> これの裏画面バージョン(現在リアルタイムで出力しているテクスチャ(裏画面にアタッチしているテクスチャ?))のようなものがあればと思っているのですがありますでしょうか?
GIOS.Device.Screen.SubBackBufferTexture が恐らくみこさんご所望の『現在リアルタイムで出力しているテクスチャ』だと思います
DXライブラリ iOS版や Android版 では、まず SubBackBufferTexture に対して描画を行い、
ScreenFlip の際に本来の OpenGL ES のバックバッファ( 裏画面 )に SubBackBufferTexture の
内容を描画してからバックバッファ( 裏画面 )の内容を表画面に表示する、という手順を行っているので…
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.2 ) |
- 名前:みこ 日時:2025/02/13 03:00
詳しいご説明ありがとうございます!
GIOS.Device.Screen.SubBackBufferTexture を使ってはみたのですが、
glCopyTexSubImage2Dを使った方法に比べてエフェクトの色が濃くなる等の違和感があったので勘違いしてました、、
となると別の問題ですね、もう少し頑張ってみます
2点目の問題ですが、iOS版のRefreshDxLibOpenGLESSetting関数の実装は可能でしょうか?
※Effekseer内部でGLESを使った描画処理をしているのでDxLibに戻る際にGLES関連の再設定が必要ではないかと思いました
また、本件とは関係無いですが不具合が2件見つかりましたので共有します。
・法線マップを使用した3DモデルをAndroid版、iOS版で描画すると真っ黒になります ※サンプルソースとスクリーンショットを以下リンクにて共有します
・SetKeyInputStringFont で縁有りのフォントハンドルを設定した場合、キー入力の文字列の縁の周りに文字色が少しはみ出ています ※スクリーンショットを格納しています
ttps://drive.google.com/open?id=1bF2BSQY37Bw9tAQ312hV2mKuduzOmClo&usp=drive_fs
お手数をお掛けしますがよろしくお願いいたします
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.3 ) |
- 名前:管理人 日時:2025/02/14 02:57
> 2点目の問題ですが、iOS版のRefreshDxLibOpenGLESSetting関数の実装は可能でしょうか?
すみません、現在手元の環境では iOS版の aファイルの作成が失敗してしまう状態なので
コンパイルが成功するかの確認もできていませんが、RefreshDxLibOpenGLESSetting は非常に
シンプルなつくり( DXライブラリ内部用の関数を一つ呼んでいるだけ )なので恐らく問題ないと思います
aファイルが作成できない状態なのでソースでのご提供となりますが問題ないでしょうか? m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース
(中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
> ・法線マップを使用した3DモデルをAndroid版、iOS版で描画すると真っ黒になります ※サンプルソースとスクリーンショットを以下リンクにて共有します
> ・SetKeyInputStringFont で縁有りのフォントハンドルを設定した場合、キー入力の文字列の縁の周りに文字色が少しはみ出ています ※スクリーンショットを格納しています
ご情報ありがとうございます
今週末は用事があり修正作業をする時間の確保が難しいので、来週末に修正を試みたいと思います m(_ _;m
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.4 ) |
- 名前:みこ 日時:2025/02/15 19:26
・iOS版のRefreshDxLibOpenGLESSetting関数について
はい、大丈夫です!
実機のみ確認ですが正常に動作しました、ありがとうございます!
・不具合について
承知しました、お忙しい中ありがとうございます!
・Android版とiOS版についての相談
先ほどモバイル版で.dds形式の画像を読み込もうとしたところ両方で失敗したのですがですが非対応でしょうか?
dxt1、dxt5が読み込み失敗
iOS版 -> DxLib::glTexSubImage2D_ASync でアプリが落ちました
Android版 -> アプリは落ちませんでしたがカラフルなスノーノイズが写り、ほんの少しですが画像の面影がありました
Windows版 -> 正常
※LoadGraph や MV1LoadModelのテクスチャ で確認
お時間の許す限りで構いませんので、お手数をお掛けしますがよろしくお願いいたします_(_^_)_
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.5 ) |
- 名前:管理人 日時:2025/02/16 22:34
> ・Android版とiOS版についての相談
> 先ほどモバイル版で.dds形式の画像を読み込もうとしたところ両方で失敗したのですがですが非対応でしょうか?
すみません、Android版とiOS版は dxt圧縮された ddsは一応読み込める仕組みは作っていたのですが
バグで正常に処理されていませんでした
修正版をアップしましたので、よろしければお試しください m(_ _;m
( 例によって iOS版はありません m(_ _;m )
https://dxlib.xsrv.jp/temp/DxLibAndroidTest.zip // Android版
https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース
(中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
因みに、Android版、iOS版は dxt圧縮には対応していないので、LoadGraph や MV1LoadModel で
読み込むと内部で無圧縮24bitカラー( or 32bitカラー )の画像に変換されて使用されます m(_ _)m
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.6 ) |
- 名前:みこ 日時:2025/02/17 23:29
お忙しい中快速な対応ありがとうございます!
>因みに、Android版、iOS版は dxt圧縮には対応していないので、LoadGraph や MV1LoadModel で
>読み込むと内部で無圧縮24bitカラー( or 32bitカラー )の画像に変換されて使用されます m(_ _)m
消費メモリ量の少ないdds形式を使用してメモリ消費量を抑えたかったので残念ですが承知しました!
Androidで確認したところアプリが落ちる事は無くなりましたが、色が変色するのと、左上が黒くなって読み込まれました。
※iOSは未確認です
ddsはNvidiaTextureToolExporterのbc1(dxt1)を使用して変換しました。
※alpha情報を含んだbc3(dxt5) でも同じ結果でした
以下リンクにて共有します。
ttps://drive.google.com/open?id=1bF2BSQY37Bw9tAQ312hV2mKuduzOmClo&usp=drive_fs
android-dds.png -> androidエミュレータのスクショ
splash.dds -> 使用した画像ファイル
お手数をお掛けしますがよろしくお願いいたします
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.7 ) |
- 名前:管理人 日時:2025/02/19 02:39
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.8 ) |
- 名前:みこ 日時:2025/02/20 00:58
快速な対応ありがとうございます!
確認したところ、AndroidはMV1と通常の描画いずれも正常に描画できましたがiOSは描画されませんでした
MV1のテクスチャは正常に反映されていましたが、
通常の描画では0以上の正常な値を返し、DrawGraph等の描画では0を返しましたが何も映りませんでした。
また、一部ですが描画されるdds画像もありましたのでGoogleドライブの「描画されたdds」フォルダに入れておきます
一見問題なさそうですがスレッド関連の警告もありましたので念のためxcodeで取得したログも載せておきます。(文字化けだらけですが)
お手数をお掛けしますが何卒よろしくお願いいたします。
------------- log -------------
0:Start initialization processing of DX library
1: DX library Ver3.24e
2: 非同期読み込み処理の初期化...
成功
2: ファイルアクセス処理の初期化...
成功
585: バージョン:OpenGL ES 2.0 Metal - 101
585: レンダラー:Apple A15 GPU
585: ベンダー:Apple Inc.
585: „Ç„Ç߄ɺ„ÉĄɺˮÄË™û„Éê„ɺ„Ç∏„Éß„É≥:OpenGL ES GLSL ES 1.00
585: OpenGL ES Extensions 一覧
585: GL_OES_depth_texture
585: GL_OES_depth_texture_cube_map
586: GL_OES_depth24
586: GL_OES_element_index_uint
586: GL_OES_fbo_render_mipmap
586: GL_OES_mapbuffer
586: GL_OES_packed_depth_stencil
586: GL_OES_rgb8_rgba8
586: GL_OES_standard_derivatives
586: GL_OES_texture_float
586: GL_OES_texture_half_float
586: GL_OES_texture_half_float_linear
586: GL_OES_vertex_array_object
587: GL_EXT_blend_minmax
587: GL_EXT_color_buffer_half_float
587: GL_EXT_debug_label
587: GL_EXT_debug_marker
588: GL_EXT_discard_framebuffer
588: GL_EXT_draw_instanced
588: GL_EXT_instanced_arrays
588: GL_EXT_map_buffer_range
589: GL_EXT_occlusion_query_boolean
589: GL_EXT_pvrtc_sRGB
589: GL_EXT_read_format_bgra
590: GL_EXT_separate_shader_objects
591: GL_EXT_shader_framebuffer_fetch
591: GL_EXT_shader_texture_lod
591: GL_EXT_shadow_samplers
592: GL_EXT_sRGB
592: GL_EXT_texture_filter_anisotropic
592: GL_EXT_texture_rg
594: GL_EXT_texture_storage
594: GL_APPLE_clip_distance
596: GL_APPLE_color_buffer_packed_float
596: GL_APPLE_copy_texture_levels
596: GL_APPLE_framebuffer_multisample
596: GL_APPLE_rgb_422
596: GL_APPLE_sync
600: GL_APPLE_texture_format_BGRA8888
600: GL_APPLE_texture_max_level
602: GL_APPLE_texture_packed_float
603: GL_IMG_read_format
603: GL_IMG_texture_compression_pvrtc
604: Max Vertex AttribsÔºö16
605: Max Vertex Uniform VectorsÔºö128
605: Max Varying VectorsÔºö8
605: Max Combined Texture Image UnitsÔºö8
606: Max Vertex Texture Image UnitsÔºö8
606: Max Texture Image UnitsÔºö8
606: Max Fragment Uniform VectorsÔºö64
615: „Ç„Ç߄ɺ„ÉĄɺ„Ç≥„ɺ„ÉâÈñ¢‰øÇ„ÅÆÂàùÊúüÂåñ....
成功
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIView window]
PID: 19865, TID: 1892326, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4 MyApp 0x00000001013e2720 -[DxLibGLView disableGesture] + 48
5 MyApp 0x00000001013e6a80 _Z18DisableGesture_iOSv + 44
6 MyApp 0x00000001013c3898 _ZN5DxLib30Graphics_Initialize_Timing0_PFEv + 48
7 MyApp 0x000000010103c2e0 _ZN5DxLib19Graphics_InitializeEv + 584
8 MyApp 0x00000001013dc538 _ZN5DxLib13NS_DxLib_InitEv + 296
9 MyApp 0x0000000100fb6bb4 _ZN5DxLib10DxLib_InitEv + 52
10 MyApp 0x0000000100ec2ca0 _Z6DxInitv + 128
11 MyApp 0x0000000100ee3cfc _ZZ8ios_mainvENK4$_10clEv + 28
12 MyApp 0x0000000100ee3cd4 _ZNSt3__18__invokeB7v160006IRZ8ios_mainvE4$_10JEEEDTclclsr3stdE7declvalIT_EEspclsr3stdE7declvalIT0_EEEEOS3_DpOS4_ + 24
13 MyApp 0x0000000100ee3c8c _ZNSt3__128__invoke_void_return_wrapperIvLb1EE6__callIJRZ8ios_mainvE4$_10EEEvDpOT_ + 24
14 MyApp 0x0000000100ee3c68 _ZNSt3__110__function12__alloc_funcIZ8ios_mainvE4$_10NS_9allocatorIS2_EEFvvEEclB7v160006Ev + 28
15 MyApp 0x0000000100ee2adc _ZNSt3__110__function6__funcIZ8ios_mainvE4$_10NS_9allocatorIS2_EEFvvEEclEv + 28
16 MyApp 0x0000000100dcf788 _ZNKSt3__110__function12__value_funcIFvvEEclB7v160006Ev + 68
17 MyApp 0x0000000100dcd684 _ZNKSt3__18functionIFvvEEclEv + 24
18 MyApp 0x0000000100e89324 _ZN2ME7Console9UseMemoryERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_8functionIFvvEEE + 44
19 MyApp 0x0000000100ec4568 _Z8ios_mainv + 108
20 MyApp 0x00000001013ddfb4 _ZL13ios_app_entryPv + 44
21 libsystem_pthread.dylib 0x000000021d7927d0 _pthread_start + 136
22 libsystem_pthread.dylib 0x000000021d792480 thread_start + 8
Main Thread Checker: UI API called on a background thread: -[UIView window]
PID: 19865, TID: 1892326, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4 MyApp 0x00000001013e2720 -[DxLibGLView disableGesture] + 48
5 MyApp 0x00000001013e6a80 _Z18DisableGesture_iOSv + 44
6 MyApp 0x00000001013c3898 _ZN5DxLib30Graphics_Initialize_Timing0_PFEv + 48
7 MyApp 0x000000010103c2e0 _ZN5DxLib19Graphics_InitializeEv + 584
8 MyApp 0x00000001013dc538 _ZN5DxLib13NS_DxLib_InitEv + 296
9 MyApp 0x0000000100fb6bb4 _ZN5DxLib10DxLib_InitEv + 52
10 MyApp 0x0000000100ec2ca0 _Z6DxInitv + 128
11 MyApp 0x0000000100ee3cfc _ZZ8ios_mainvENK4$_10clEv + 28
12 MyApp 0x0000000100ee3cd4 _ZNSt3__18__invokeB7v160006IRZ8ios_mainvE4$_10JEEEDTclclsr3stdE7declvalIT_EEspclsr3stdE7declvalIT0_EEEEOS3_DpOS4_ + 24
13 MyApp 0x0000000100ee3c8c _ZNSt3__128__invoke_void_return_wrapperIvLb1EE6__callIJRZ8ios_mainvE4$_10EEEvDpOT_ + 24
14 MyApp 0x0000000100ee3c68 _ZNSt3__110__function12__alloc_funcIZ8ios_mainvE4$_10NS_9allocatorIS2_EEFvvEEclB7v160006Ev + 28
15 MyApp 0x0000000100ee2adc _ZNSt3__110__function6__funcIZ8ios_mainvE4$_10NS_9allocatorIS2_EEFvvEEclEv + 28
16 MyApp 0x0000000100dcf788 _ZNKSt3__110__function12__value_funcIFvvEEclB7v160006Ev + 68
17 MyApp 0x0000000100dcd684 _ZNKSt3__18functionIFvvEEclEv + 24
18 MyApp 0x0000000100e89324 _ZN2ME7Console9UseMemoryERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_8functionIFvvEEE + 44
19 MyApp 0x0000000100ec4568 _Z8ios_mainv + 108
20 MyApp 0x00000001013ddfb4 _ZL13ios_app_entryPv + 44
21 libsystem_pthread.dylib 0x000000021d7927d0 _pthread_start + 136
22 libsystem_pthread.dylib 0x000000021d792480 thread_start + 8
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIView gestureRecognizers]
PID: 19865, TID: 1892326, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4 MyApp 0x00000001013e2734 -[DxLibGLView disableGesture] + 68
5 MyApp 0x00000001013e6a80 _Z18DisableGesture_iOSv + 44
6 MyApp 0x00000001013c3898 _ZN5DxLib30Graphics_Initialize_Timing0_PFEv + 48
7 MyApp 0x000000010103c2e0 _ZN5DxLib19Graphics_InitializeEv + 584
8 MyApp 0x00000001013dc538 _ZN5DxLib13NS_DxLib_InitEv + 296
9 MyApp 0x0000000100fb6bb4 _ZN5DxLib10DxLib_InitEv + 52
10 MyApp 0x0000000100ec2ca0 _Z6DxInitv + 128
11 MyApp 0x0000000100ee3cfc _ZZ8ios_mainvENK4$_10clEv + 28
12 MyApp 0x0000000100ee3cd4 _ZNSt3__18__invokeB7v160006IRZ8ios_mainvE4$_10JEEEDTclclsr3stdE7declvalIT_EEspclsr3stdE7declvalIT0_EEEEOS3_DpOS4_ + 24
13 MyApp 0x0000000100ee3c8c _ZNSt3__128__invoke_void_return_wrapperIvLb1EE6__callIJRZ8ios_mainvE4$_10EEEvDpOT_ + 24
14 MyApp 0x0000000100ee3c68 _ZNSt3__110__function12__alloc_funcIZ8ios_mainvE4$_10NS_9allocatorIS2_EEFvvEEclB7v160006Ev + 28
15 MyApp 0x0000000100ee2adc _ZNSt3__110__function6__funcIZ8ios_mainvE4$_10NS_9allocatorIS2_EEFvvEEclEv + 28
16 MyApp 0x0000000100dcf788 _ZNKSt3__110__function12__value_funcIFvvEEclB7v160006Ev + 68
17 MyApp 0x0000000100dcd684 _ZNKSt3__18functionIFvvEEclEv + 24
18 MyApp 0x0000000100e89324 _ZN2ME7Console9UseMemoryERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_8functionIFvvEEE + 44
19 MyApp 0x0000000100ec4568 _Z8ios_mainv + 108
20 MyApp 0x00000001013ddfb4 _ZL13ios_app_entryPv + 44
21 libsystem_pthread.dylib 0x000000021d7927d0 _pthread_start + 136
22 libsystem_pthread.dylib 0x000000021d792480 thread_start + 8
Main Thread Checker: UI API called on a background thread: -[UIView gestureRecognizers]
PID: 19865, TID: 1892326, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4 MyApp 0x00000001013e2734 -[DxLibGLView disableGesture] + 68
5 MyApp 0x00000001013e6a80 _Z18DisableGesture_iOSv + 44
6 MyApp 0x00000001013c3898 _ZN5DxLib30Graphics_Initialize_Timing0_PFEv + 48
7 MyApp 0x000000010103c2e0 _ZN5DxLib19Graphics_InitializeEv + 584
8 MyApp 0x00000001013dc538 _ZN5DxLib13NS_DxLib_InitEv + 296
9 MyApp 0x0000000100fb6bb4 _ZN5DxLib10DxLib_InitEv + 52
10 MyApp 0x0000000100ec2ca0 _Z6DxInitv + 128
11 MyApp 0x0000000100ee3cfc _ZZ8ios_mainvENK4$_10clEv + 28
12 MyApp 0x0000000100ee3cd4 _ZNSt3__18__invokeB7v160006IRZ8ios_mainvE4$_10JEEEDTclclsr3stdE7declvalIT_EEspclsr3stdE7declvalIT0_EEEEOS3_DpOS4_ + 24
13 MyApp 0x0000000100ee3c8c _ZNSt3__128__invoke_void_return_wrapperIvLb1EE6__callIJRZ8ios_mainvE4$_10EEEvDpOT_ + 24
14 MyApp 0x0000000100ee3c68 _ZNSt3__110__function12__alloc_funcIZ8ios_mainvE4$_10NS_9allocatorIS2_EEFvvEEclB7v160006Ev + 28
15 MyApp 0x0000000100ee2adc _ZNSt3__110__function6__funcIZ8ios_mainvE4$_10NS_9allocatorIS2_EEFvvEEclEv + 28
16 MyApp 0x0000000100dcf788 _ZNKSt3__110__function12__value_funcIFvvEEclB7v160006Ev + 68
17 MyApp 0x0000000100dcd684 _ZNKSt3__18functionIFvvEEclEv + 24
18 MyApp 0x0000000100e89324 _ZN2ME7Console9UseMemoryERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_8functionIFvvEEE + 44
19 MyApp 0x0000000100ec4568 _Z8ios_mainv + 108
20 MyApp 0x00000001013ddfb4 _ZL13ios_app_entryPv + 44
21 libsystem_pthread.dylib 0x000000021d7927d0 _pthread_start + 136
22 libsystem_pthread.dylib 0x000000021d792480 thread_start + 8
Trying to set delaysTouchesBegan to NO on a system gate gesture recognizer - this is unsupported and will have undesired side effects
1594: フォントの初期化を行います
1615: フォントの初期化は正常に終了しました
1769:DX library initialization processing end
2003:Effekseer_Init : 48752KB (47MB)
2004:ÁîªÈù¢„É¢„ɺ„Éâ§âÊõ\Âá¶ÁêÜ„ÇíÈñãÂßã„Åó„Åæ„Åô
2007:ÁîªÈù¢„É¢„ɺ„Éâ§âÊõ\Âá¶ÁêÜ„ÅØÊ≠£Â∏∏„Å´ÁµÇ‰∫Ü„Åó„Åæ„Åó„Åü
2118:MainGraph : 26624KB (26MB)
2166:FontData : 79952KB (78MB)
2259:Graph : 45968KB (44MB)
2259:DivGraph : 0KB (0MB)
2314:ModelAnim : 17808KB (17MB)
3032:Model : 272912KB (266MB)
5395:Sound : 131104KB (128MB)
5400:Effect : 0KB (0MB)
5400:InitTotal : 650208KB (634MB)
Message from debugger: killed
 |
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.9 ) |
- 名前:管理人 日時:2025/02/21 01:41
> 確認したところ、AndroidはMV1と通常の描画いずれも正常に描画できましたがiOSは描画されませんでした
> MV1のテクスチャは正常に反映されていましたが、
> 通常の描画では0以上の正常な値を返し、DrawGraph等の描画では0を返しましたが何も映りませんでした。
私の手元の iOSエミュレーター環境では以前アップしていただいた splash.dds は正常に表示されましたが、
みこさんの環境では splash.dds も正常に表示されないでしょうか?
> 一見問題なさそうですがスレッド関連の警告もありましたので念のためxcodeで取得したログも載せておきます。(文字化けだらけですが)
ありがとうございます
こちらはこちらで根が深そうなのでちょっと今回は保留とさせてください m(_ _;m
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.10 ) |
- 名前:みこ 日時:2025/02/22 06:53
>私の手元の iOSエミュレーター環境では以前アップしていただいた splash.dds は正常に表示されましたが、
>みこさんの環境では splash.dds も正常に表示されないでしょうか?
ソースコード、.xcodeproj、ライブラリ(.a)を別のプロジェクトにコピーして再確認したところなぜか正常に描画されました。(ディレクトリ名を変えただけではだめでした)
元のプロジェクトでは相変わらず表示されませんでしたが、mipmapを除いたddsで試したら正常に描画されました。
Clean Build Folder... も実行して確認したのでキャッシュクリアもできていると思うのですが謎です、、
とは言え容量的にもmipmapを含まないddsの方が都合が良く、それを使う事にしたので、
私的にはこの問題は解決しました(原因不明なのは気持ち悪いですが)
【GIOS.Device.Screen.SubBackBufferTexture についての問題点】
こちらのテクスチャを使用する以外に本件の解決策が無さそうでしたのでこのテクスチャを持ってきて使用するよう進めていますが、iOS版で問題がありました。
現在Effekseer様とコンタクトを取っているのですが、歪みエフェクトにノイズが写ってしまう問題があり確認したところ、
GIOS.Device.Screen.SubBackBufferTexture が未初期化ではないかとご指摘を頂き以下プログラムで確認してみました。
```
#if defined(__ANDROID__)
glBindTexture(GL_TEXTURE_2D, DxLib::GANDR.Device.Screen.SubBackBufferTexture);
#elif defined(__APPLE__)
glBindTexture(GL_TEXTURE_2D, DxLib::GIOS.Device.Screen.SubBackBufferTexture);
#endif
GLenum error = glGetError();
// Android環境では GL_NO_ERROR(正常) を返し、歪み機能が正常に動作します
// iOS環境では GL_INVALID_ENUM(エラー) を返し、歪み機能にノイズが写ります
```
こちらiOS環境でGL_NO_ERROR(正常)を返すようになれば恐らくノイズは消えるのではないかと考えているのですが、
GL_NO_ERRORを返すように対応は可能でしょうか?
【関数追加の要望について】
現在 SubBackBufferTexture を取得するためにDxLib全てのヘッダーをインクルードして使用しており、
容量もそれなりに大きいのでビルド時間を短縮するために本来のインクルードすべきヘッダーファイルのみを使用したいと思っています。
お忙しい中何度も申し訳ないですが、お手隙で構いませんので可能であればこのような関数があると助かりますm(_ _)m
画面全体のGLESテクスチャバッファを取得する関数
※Android版は GANDR.Device.Screen.SubBackBufferTexture を取得する
※iOS版は GIOS.Device.Screen.SubBackBufferTexture を取得する
※Windows版は不要
お手数をお掛けしますが何卒よろしくお願いいたします。
 |
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.11 ) |
- 名前:管理人 日時:2025/02/23 00:27
> GLenum error = glGetError();
> // Android環境では GL_NO_ERROR(正常) を返し、歪み機能が正常に動作します
> // iOS環境では GL_INVALID_ENUM(エラー) を返し、歪み機能にノイズが写ります
私の手元でも確認してみたところ、確かに GL_INVALID_ENUM が返ってくるのですが、
GIOS.Device.Screen.SubBackBufferTexture を生成している箇所でも GL_INVALID_ENUM が
返ってきていて、どうも iOS の環境では glGetError が正常に動作していないのではないかと思いました
というのも DxGraphicsiOS.cpp の 2753行目付近のこの処理で GIOS.Device.Screen.SubBackBufferTexture を初期化しているのですが、
glGenTextures( 1, &GIOS.Device.Screen.SubBackBufferTexture ) ;
glBindTexture( GL_TEXTURE_2D, GIOS.Device.Screen.SubBackBufferTexture ) ;
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE ) ;
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ) ;
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ) ;
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ) ;
glTexImage2D( GL_TEXTURE_2D, 0, GIOS.Device.Screen.SubBackBufferTextureInternalFormat, GIOS.Device.Screen.SubBackBufferTextureSizeX, GIOS.Device.Screen.SubBackBufferTextureSizeY, 0, GIOS.Device.Screen.SubBackBufferTexturePixelFormat, GIOS.Device.Screen.SubBackBufferTexturePixelType, 0 ) ;
glGenTextures の直後に glGetError を実行しても GL_INVALID_ENUM が返ってくるのですが、
GIOS.Device.Screen.SubBackBufferTexture には問題なく新しいテクスチャオブジェクトが
格納されていて、且つ iOS の画面の描画には GIOS.Device.Screen.SubBackBufferTexture は
欠かせないものなので、
glGenTextures( 1, &GIOS.Device.Screen.SubBackBufferTexture ) ;
↑
こちらの行をコメントアウトして実行すると画面には何も描画されなくなるので、間違いなく
glGenTextures は成功しています
なので、glGenTextures や glBindTexture が失敗しているのではなく、glGetError が正常に
動作していないというのが実際のところだと思います
> 【関数追加の要望について】
> 現在 SubBackBufferTexture を取得するためにDxLib全てのヘッダーをインクルードして使用しており、
> 容量もそれなりに大きいのでビルド時間を短縮するために本来のインクルードすべきヘッダーファイルのみを使用したいと思っています。
> お忙しい中何度も申し訳ないですが、お手隙で構いませんので可能であればこのような関数があると助かりますm(_ _)m
> 画面全体のGLESテクスチャバッファを取得する関数
> ※Android版は GANDR.Device.Screen.SubBackBufferTexture を取得する
> ※iOS版は GIOS.Device.Screen.SubBackBufferTexture を取得する
了解です
SubBackBufferTexture を取得するための関数を追加したバージョンをアップしましたので、
よろしければこちらをダウンロードしてください m(_ _)m
https://dxlib.xsrv.jp/temp/DxLibAndroidTest.zip // Android版
https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース
(中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
以下の関数を追加しました
// サブバックバッファテクスチャのテクスチャオブジェクトを取得する
unsigned int GetSubBackbufferOpenGLESTextureObject( void ) ;
関数の注釈の通り、SubBackBufferTexture の値を返します
よろしければお使いください m(_ _)m
因みに GIOS.Device.Screen.SubBackBufferTexture を使う目的でしたら
DxGraphicsiOS.h をインクルードするだけで使えます
 |
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.12 ) |
- 名前:みこ 日時:2025/02/24 02:15
GetSubBackbufferOpenGLESTextureObject 関数の快速な実装ありがとうございます!
GIOS.Device.Screen.SubBackBufferTextureについても調査ありがとうございます!
こちらでもglCopyTexSubImage2Dで使用していたテクスチャバッファ(ノイズが発生しない方法)の方も確認してみたところGL_INVALID_ENUMが返ってきましたので、GL_INVALID_ENUMは関係なさそうですね
となると後怪しいのはフレームバッファあたりになりますが、DxLib自体は正常に動いていそうなので難しい問題です
他の解決策となるとDxLibがMetalに対応するくらいしか思いつかず、もう少し調査してみて難しそうなら今回は歪み機能の実装を見送ろうと思います
※EffekseerはMetalに対応している且つ、現時点でiOS公式でもMetalへの移行が推奨されていますがDxLibを対応させるとなるととんでもないタスク量になりそうですよね
>・法線マップを使用した3DモデルをAndroid版、iOS版で描画すると真っ黒になります
>・SetKeyInputStringFont で縁有りのフォントハンドルを設定した場合、キー入力の文字列の縁の周りに文字色が少しはみ出ています
大変お手数をお掛けしますがお手隙の際にこちらも対応頂けると幸いです。
よろしくお願いいたします。
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.13 ) |
- 名前:管理人 日時:2025/02/25 00:39
> ※EffekseerはMetalに対応している且つ、現時点でiOS公式でもMetalへの移行が推奨されていますがDxLibを対応させるとなるととんでもないタスク量になりそうですよね
そうですね
iOS版は Android版の OpenGL ES 2 の実装がほぼそのまま使えるというのがかなり助かっているので
( 片方のバグを修正するともう片方のバグも直る… )
Metal に対応するのは OpenGL ES 2 が iOS上で全く使用できなくなったときになるかと思います m(_ _;m
> >・法線マップを使用した3DモデルをAndroid版、iOS版で描画すると真っ黒になります
> >・SetKeyInputStringFont で縁有りのフォントハンドルを設定した場合、キー入力の文字列の縁の周りに文字色が少しはみ出ています
> 大変お手数をお掛けしますがお手隙の際にこちらも対応頂けると幸いです。
こちらの内の『・法線マップを使用した3DモデルをAndroid版、iOS版で描画すると真っ黒になります』を
修正したバージョンをアップしましたので、よろしければお試しください m(_ _)m
https://dxlib.xsrv.jp/temp/DxLibAndroidTest.zip // Android版
https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース
(中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
> ・SetKeyInputStringFont で縁有りのフォントハンドルを設定した場合、キー入力の文字列の縁の周りに文字色が少しはみ出ています
手元で以下のようなプログラムを使用して試してみたのですが、縁の周りに文字色が少しはみ出るということはありませんでした
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
// ウインドウモードで起動
ChangeWindowMode( TRUE );
// 背景色をセット
SetBackgroundColor( 255,255,255 ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// 描画対象を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
// フォントハンドルを作成
int FontHandle = CreateFontToHandle( NULL, 48, 8, DX_FONTTYPE_ANTIALIASING_EDGE, -1, 4 ) ;
// 文字列入力の表示で使用するフォントハンドルに設定
SetKeyInputStringFont( FontHandle ) ;
// 入力文字列の色を設定
SetKeyInputStringColor2( DX_KEYINPSTRCOLOR_NORMAL_STR, GetColor( 0, 0, 0 ) ) ;
SetKeyInputStringColor2( DX_KEYINPSTRCOLOR_NORMAL_STR_EDGE, GetColor( 0, 255, 255 ) ) ;
// 文字列入力ハンドルを作成
int KeyInputHandle = MakeKeyInput( 100, FALSE, FALSE, FALSE, FALSE ) ;
// 文字列入力ハンドルをアクティブに設定
SetActiveKeyInput( KeyInputHandle ) ;
// メインループ
while( ProcessMessage() == 0 )
{
// 画面をクリア
ClearDrawScreen() ;
// 入力中の文字列を描画
DrawKeyInputString( 100, 100, KeyInputHandle ) ;
// 裏画面の内容を表画面に変更
ScreenFlip() ;
}
// DXライブラリの後始末
DxLib_End() ;
return 0 ;
}
<スクリーンショット>
https://dxlib.xsrv.jp/temp/SetKeyInputStringFontTest.png
よろしければ件の現象が発生する条件を詳しく教えていただけないでしょうか? m(_ _;m
 |
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.14 ) |
- 名前:みこ 日時:2025/02/25 04:24
快速な対応ありがとうございます!
SetKeyInputStringFontの問題の条件が分かりましたので共有いたします。
共有頂きましたサンプルコードに加え、下記コードを使う事で縁の周りに文字色がはみ出ている事が確認できるかと思います。
// バイニリアを有効化
SetDrawMode(DX_DRAWMODE_BILINEAR);
// 入力中の文字列を描画 (拡大機能付きを使用する)
DrawKeyInputExtendString(100, 100, 2, 2, KeyInputHandle);
モバイル版の法線マップについてもこれから確認しますのでまたご連絡させて頂きます。
お手数をお掛けしますが何卒よろしくお願いいたします
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.15 ) |
- 名前:みこ 日時:2025/02/25 06:29
モバイル版の法線マップの件、
Android、iOSの両方で正常に描画されていました!
対応ありがとうございます!
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.16 ) |
- 名前:管理人 日時:2025/02/26 02:34
|
Re: iOS版で画面全体のGLESテクスチャバッファを取得したい ( No.17 ) |
- 名前:みこ(解決) 日時:2025/02/27 06:46
いつも快速な対応ありがとうございます!
確認したところ文字色の問題が修正されていました!
|