問題タブ [glsurfaceview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android OpenGL は画面の半分しかレンダリングしない
私はopenglアプリケーションの例に従っていますが、なぜこのことが起こっているのかわかりません...
対応するレンダラーが三角形を描画する GLSurfaceView があります。ただし、画面全体を表示するのではなく、上半分だけを表示し、写真でわかるように複製しています。Nexus One を使用しています
xml:
アクティビティには、マニフェストにこれがあります。
DrawingLayer クラス:
三角形のレンダラー (ほとんどは Apress Pro Android 2 の本から)
前もって感謝します!
android - ボタンがクリックされると、GLSurfaceViewテクスチャードレク
GLSurfaceViewとその上に描画されたオブジェクトに関連する簡単な質問をしたいだけです。長方形を描画し、それにテクスチャをバインドしています。それは素晴らしい働きをします。次に、描画しているテクスチャ化されたrectがGLSurfaceViewにあります。ユーザーがボタンをクリックしたかどうかを知る必要がある「ボタン」のようなオブジェクトを描画しています。
私はこのように想像しました:ユーザーが画面をタップし、タップの.yが描画されたオブジェクト(私の場合はボタン)の長方形にある場合、別の操作を実行する必要があります(つまり、別のビューを変更するなど)。 ..)。私の考えは正しいですか?
ここで質問:ユーザーの操作をどのように処理しますか?そして、GLSurfaceView(つまり、Rect(120、80))にマップされた描画オブジェクト(ボタン)のRectを取得して、ユーザーがボタンをクリックしたかどうかを確認するにはどうすればよいですか?または、他のアプローチがあります。
また、私は次のことに興味があります。アプリケーションを完全なOpenGLESベースにすることを念頭に置いています。Androidのボタンビューは使用しません。私は大きなテクスチャを使用していますが、平行移動、回転、スケーリングによるアニメーションの方がはるかに扱いやすいため、OpenGLESの方が適していると思います。私は正しいですか?
ありがとう
android - XML/Javaを使用したオーバーレイ付きのAndroidglSurfaceView
Android OpenGLアプリケーションを起動し、次のクラスがあります。
クラスAのonCreateが呼び出されると、クラスBタイプのオブジェクトが作成され、次のように呼び出されます。
これまでのところそれは機能し、私はそれに数日を費やしました。
ここで、アプリケーションにボタンを追加したいと思い、SurfaceViewOverlayの例を見つけました。これは、いくつかのXMLを使用してビュー階層を作成します。XMLコードを切り取って貼り付けるのと非常によく似たものを作成したかったのです。
元のクラス階層を念頭に置いて、ビューを初期化するにはどうすればよいですか?クラスAのonCreate()に何を書くべきですか?
私は使ってみました:
また、ボタンとGLビューを画面に描画しますが、GLビューはタップ/クリックからの入力を取り込むことができません。
これは、BobjectのonTouchEvent()が次のようにのみ使用されているため、呼び出されていないことが原因である可能性があります。
ではなく:
物体。
上記のコードの代わりに、私が本当に望んでいるのは、BobjectでglSurfaceViewを置き換えることです。しかし、私はそれを行う方法がわかりません。findViewById()を実行すると、glSurfaceViewは今のところすでに作成されているようです。GLビューにタイプBのオブジェクトを使用するように依頼するにはどうすればよいですか?
初心者のミスについては申し訳ありません。Androidはまったく新しい。
編集:私もこれを試しました:
また、次のことも試しました。XMLファイルで、GLSurfaceViewを次のように変更しました。
そして、私のAクラスコンストラクターでは、次のように呼び出しています。
XMLファイル/アクティビティでglSurfaceViewを拡張するカスタムクラスをどのように使用する必要がありますか?
android - AndroidのGLSurfaceViewでビデオを再生するにはどうすればよいですか?
ApiDeomsからCubeデモにSurfaceViewを追加しました。そして、MediaPlayerを使って遊んでみました。しかし、デバイスごとに異なる低レベルのプレーヤーエラーで失敗しました。GLSurfaceViewでビデオを再生することは可能ですか、それともハードウェアサポートがすべてです。
android - GLSurfaceViewは、レンダリングモードを変更しても、継続的にレンダリングします
ゲームエリアの地図を表示するGLSurfaceViewを作成しようとしています。プレーヤーが移動すると、ゲームアクティビティはhighlightSpotを呼び出します。これにより、レンダリングリクエストがトリガーされます。ビューを再描画したいのは、プレーヤーが移動したときだけです。
ただし、現在の実装でsetRenderMode(RENDERMODE_WHEN_DIRTY)
は、GLSurfaceViewを呼び出しても、レンダリングモードは継続しているように見えます。確認するために、onDrawFrameメソッドで1つのprintlnステートメントをスローしました。アプリケーションを実行すると、プレーヤーが1回も移動しなくても、出力がすぐにlogcatでいっぱいになります。これは、意図したとおりに動作していないことは明らかです。要求されたときにのみビューをレンダリングするために他に何かする必要がありますか?
(このコードの大部分は、http://insanitydesign.com/wp/projects/nehe-android-ports/のチュートリアルから派生しています。簡潔にするために、onDrawFrame、OnSurfaceChanged、およびonSurfaceCreatedメソッドを省略しました。レンダリングモードを変更したり、これらのメソッドのどこかでレンダリングを要求したりしないでください。誰かがそれが関連していると思われる場合は、それらも投稿できます。)
android - 速度の計算
GLSurfaceView に慣性スクロールを実装しようとしていますが、そのためには速度を計算する方法を理解する必要がありますが、その方法がわかりません。翻訳は行列に格納され、以下のコード行によって計算されます。
android - GLSurfaceView 上の Android ビュー アニメーションが遅い
GLSurfaceView の上にビュー アニメーション (複雑なものは何もなく、AlphaAnimation と TranslateAnimation のみ) を含む Android ビューを配置すると、アニメーションの実行が遅くなることに気付きました (つまり、多くのカクつきが見られます)。 GLSurfaceView、そしてアニメーションの再生中にGLドローコールがヒットしないことを(ブレークポイントを設定することによって)確認したと信じているので、遅さの原因はわかりません。
誰もこれを回避する方法を知っていますか? iPhoneでもこれが問題だったことは知っていますが、問題を修正するためにOSのアップデートが行われました. それらはショート ビュー アニメーション (例: You Win!) であるため、世界で最悪というわけではありませんが、回避策があればいいと思います。
GL でアニメーションを実行しない理由は、ゲーム内の任意のアクティビティからアニメーションを実行できる必要があり、すべてのアクティビティに GLSurfaceViews があるわけではないためです。
最後に、問題があれば、Replica Island http://code.google.com/p/replicaisland/から変更された GLSurfaceView ソースを使用しています。
android - GLSurfaceView クラスでの NDK 呼び出し
NDK から openGL es サーフェスをレンダリングしようとしていますが、作業の早い段階で停止しました。NDK の 3d の例に似たセットアップがあります。GLSurface ビューから継承するクラスと、GLSurfaceView.Renderer から継承するクラスがあります。私の .c ファイルには、何もしない単純なメソッドがあります。何も入っていない単なる void 関数です。アクティビティ onCreate メソッドから継承するクラスでこの関数を呼び出すことができます。
プライベート スタティック ネイティブ ボイド nativeSetup();
プログラムは正常に動作します。ただし、呼び出し (および宣言) を GLSurfaceView クラスの 1 つに入れると、プログラムはすぐに失敗します (nativeSetup が問題の呼び出しです)。ネイティブ コールがなくてもすべて正常に動作することを確認しました (色付きのサーフェスが描画されます)。GLSurface クラスからネイティブ コードを呼び出すことができない理由について、何か考えがある人はいますか?
私のcファイル:
動作しない方法で私のJavaファイル:
android - 同じレイアウトで複数の GLSurfaceView コンポーネントを使用するにはどうすればよいですか?
Android 用の Information Visualization API を作成していて、カスタムの 2 つのユニットをGLSurfaceView
レイアウトに配置しようとして問題が発生しました。GLSurfaceView
この時点でのカスタムはGLSurfaceView
、カスタム メソッドによって引き起こされる可能性のある障害を排除するための単なる拡張です。
両方のコンポーネントをレイアウトに追加してアプリケーションを起動すると、アプリケーションが実行されます。しかし何も描かれておらず、無限ループに陥っているようです。レンダラー内のデバッグ メッセージが LogCat に出力されるためです。ただし、カスタムGLSurfaceView
コンポーネントの 1 つだけを使用すると、問題なく動作します。
複数のアクティビティで使用すると問題があると読みましたがGLSurfaceView
、これらのコンポーネントを 2 つ同時に使用する場合にも当てはまると思います。ここに投稿された回避策を試しましたが、うまくいかないようです。
助けていただければ幸いです。パフォーマンスを向上させるために openGL を使用することにしましたが、一度に複数のコンポーネントを使用できない場合は、代わりに Canvas を使用する必要があると思います。
マニフェストは次のようになります。
アクティビティからのコードは次のようになります。
明らかな何かが欠けていますか?または、誰かがそれが機能しない理由を説明できますか?
android - スクロールビュー内のglsurfaceview、移動しますがクリッピングはしません
内部に線形レイアウトのスクロールビューがあります。このlinearlayout内の要素の1つは、glsurfaceviewです。
これはすべて正しく機能し、スクロールするとglsurfaceviewが上下に移動しますが、glsurfaceviewがスクロールビューの本来あるべき位置の上部または下部に到達すると、クリップされるべきではなく、スクロールビューの外側に続きます。このスクリーンショットはそれをより明確にするはずです:
完全に必要だとは思わないが、これが私のlayout.xmlです。
すべてが大いに感謝します:)