Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8399599
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T21:21:04+00:00 2026-06-09T21:21:04+00:00

I use Rajawali in android (3d opengl library). I am trying to reload material

  • 0

I use Rajawali in android (3d opengl library).

I am trying to reload material (start to use different shaders dynamicly) – but when I set new material (at runtime) to the object it disappear (after on\off screen by power button this object it appears again with new material).

After setting new material I’m trying to reload objects’ attributes (function reload), but it doesn’t help (and if i call reload() on other objects – they dissappear too =) ).

Function reload() in materials (shaders class) is:

    public void reload() {
        setShaders(mUntouchedVertexShader, mUntouchedFragmentShader);

        for(int i=0; i<mNumTextures; i++) {
            addTexture(mTextureInfoList.get(i), true, true);
        }
    }

I can’t understand why they disappear and why they appear again after restart with new shaders.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T21:21:05+00:00Added an answer on June 9, 2026 at 9:21 pm

    The problem is that you’re trying to add an object in the middle of a render cycle.
    When the material tries to create the shader an error is returned.

    Work is currently being done to the API to make this more user-friendly. In the meantime you can do something similar to this:

    private boolean mSetShaders;
    
    public void onTouch() {
        // -- boolean that indicates that an object should be added onDrawFrame()
        mSetShaders = true;
    }
    
    public void onDrawFrame(GL10 glUnused) {
        super.onDrawFrame(glUnused);
        if(mSetShaders) {
            // ... set your shaders here ...
            mSetShaders = false;
        }
    }
    

    This example is for onTouch() events but it shouldn’t be a big effort to rewrite it to suit your needs.
    Basically you just queue the set shader event until the next render cycle happens.

    Not the prettiest solution but it’ll do until the next framework update 😉

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Use new MediaPlayer by Yahoo. Content parse automatic - greate, but I use ajax
use Text::Table; my $tb = Text::Table->new(Planet,Radius\nkm,Density\ng/cm^3); $tb->load( [ Mercury,2360,3.7], [ Mercury,2360,3.7], [ Mercury,2360,3.7], );
use LWP::UserAgent; use Data::Dumper; my $ua = new LWP::UserAgent; $ua->agent(AgentName/0.1 . $ua->agent); my $req
use Control::CLI; $cli = new Control::CLI('SSH'); $cli->connect(Host=>'10.10.10.10',Username=>'user',Password=>'pwd'); $cli->waitfor('>'); $cli->print('Show XXXXXXXXXXXXXXXXXXXX| grep Active'); @f=$cli->waitfor('>'); print
use WWW::Mechanize; my $mech = WWW::Mechanize->new; $mech->get( $url ); say $mech->text; How could I
USE master GO DECLARE @DbName nvarchar(MAX) SET @DbName = N'DataBase' ALTER DATABASE @DbName SET
Use to work with a MySQL + + (library for C + +) The
Use cardova 2.0.0. After Compilations app show error: Could not find class 'android.webkit.WebResourceResponse', referenced
use Net::Google::Calendar; my $cal = Net::Google::Calendar->new; $cal->login(...); my $c; for ($cal->get_calendars) { $c =
Use case: we have some project meta-data files which we want tracked, but are

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.